<?php
 If (!IsSet ($reentrance))
  {
   Session_Start () ;
   Include ("../../include/garennes.cfg") ;
   Include ("../../include/init.php") ;
   Include ("../include/config.inc") ;
   $fenetre = 1 ;
   verif_droits ($droit_courant, $_SESSION ["code"]) ;
  }
 
 // Variable de typage de page pour ie (page 1 du menu)
 $type = var_courante ("type", 0, 1) ;
 
 $id_service_prof = var_courante ("id_service_prof", 0, 0) ;
 $id_classe = var_courante ("id_classe", 0, 0) ;
 $professeur = var_courante ("professeur", 0, 0) ;
 $id_service_classe = var_courante ("id_service_classe", 0, 0) ;
 $discipline = var_courante ("discipline", 0, 0) ;
 $id_professeur = var_courante ("id_professeur", 0, 0) ;
 $periode = var_courante ("periode", 0, null) ;
 $menu = var_courante ("menu", 0, 200) ;
 $code = var_courante ("code", 0, $_SESSION ["code"]) ;
 $impression = var_courante ("impression", 0, null) ;
 $action = var_courante ("action", 0, null) ;
 $exam = var_courante ("exam", 0, null) ;
 $c = var_courante ("c", 0, 0) ;
 $nombre = var_courante ("nombre", 0, 0) ;
 $nombre_notes = var_courante ("nombre_notes", 0, 0) ;
 $saisie = var_courante ("saisie", 0, 0) ;
 $fichier = var_courante ("fichier", 0, null) ;
 $maj_moy = var_courante ("maj_moy", 0, 0) ;
 $millesime = millesime (0) ;
 
 // Format des arrondis des moyennes
 $format_arrondi = restaure_configuration ("PROF_".utilparcode ($code),"MOYENNES","FORMAT") ;
 If (!IsSet ($format_arrondi) Or ($format_arrondi < 0) Or ($format_arrondi == "")) { $format_arrondi = 2 ; }
 
 $param_theme = parametres_theme (themeparsession ($_SESSION ["code"])) ;
 $rep_themes = "../../images/themes/" ;
 Include ($rep_themes.$param_theme ["nom_repertoire"]."/".$param_theme ["fichier_config"]) ;
 
 If ((!$id_service_prof) And (!$impression)) { Header ("Location: ./travail.php?code=".$_SESSION ["code"]."&id_classe=".$id_classe) ; }
 
 // Parametres
 If (IsSet ($impression))
  {
   If ($impression > 0) { $id_service_prof = $impression ; } Else { $id_service_prof = -$impression ; }
   SQL_transmission (4) ;
  }
 $serv_prof = SQL_commande ("SELECT * FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ;
 $sp = SQL_tableau_associatif ($serv_prof, "") ;
 $id_classe = $sp ["classe"] ;
 $type_discipline = champ_disc_type_discipline_parid ($sp ["discipline"]) ;
 $type_moyenne = champ_disc_type_moyenne_parid ($sp ["discipline"]) ;
 
 $nom_classe = nom_classe_long_parid ($sp ["classe"]) ;
 If (!IsSet ($periode)) { $periode = periode_valide ($sp ["classe"]) ; }
 $nom_periode = nom_periode ($sp ["classe"]) ;
 $periode_actuelle = periode_valide ($sp ["classe"]) ;
 If ($periode_actuelle == 0) { $periode_actuelle = 1 ; }
 If ($periode > $periode_actuelle) { $periode = $periode_actuelle ; }
 ElseIf ($periode < 1) { $periode = 1 ; }
 
 $rens_cl = SQL_commande ("SELECT * FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ;
 $rcl = SQL_tableau_associatif ($rens_cl, "") ;
 $exam = $rcl ["examen"] ;
 If ($exam > 0) { $ok_exam = 1 ; } Else { $ok_exam = 0 ; }
 
 $gstn = SQL_commande ("SELECT e.max,e.id_etablissement FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ;
 $gestion = SQL_tableau_associatif ($gstn, "") ;
 // Verification que le max soit bien correct (>0)
 If ($gestion ["max"] <= 0)
  {
   $gestion ["max"] = 20 ;
   $ok = SQL_commande ("SELECT e.id_etablissement FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ;
   $et = SQL_ligne_suivante ($ok) ;
   $ok = SQL_commande ("UPDATE etablissements SET max='".$gestion ["max"]."' WHERE id_etablissement='".$et [0]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
  }
 
 //$professeur = utilparcode ($_SESSION ["code"]) ;
 $professeur = $sp ["professeur"] ;
 If ($professeur < 0)
  {
   // C'est un alias
   If ($droit_courant == $droit_prof) { $professeur = utilparcode ($_SESSION ["code"]) ; }
   Else { $t = alias_enseignant_principal (-$sp ["professeur"]) ; $professeur = $t [0] ; }
  }
 $prof = nom_utilparsession ($_SESSION ["code"], 1) ;
 $effectif = effectif ($sp ["classe"]) ;
 $ladate [0] = Date ("j") ;
 $ladate [1] = Date ("m") ;
 $ladate [2] = Date ("Y") ;
 
 // Recherche des couleurs personnalisees
 $coul_notes = couleurs_notes ($id_classe, $_SESSION ["code"], $_SESSION ["identifiant"]) ;
 
 If (IsSet ($impression))
  {
   // CREATION DU PDF
   If ($impression > 0)
    {
     $numerotation_lignes = 0 ;
     
     // Tailles des caracteres
     $taille_numerotation_lignes = 6 ;
     
     $taille_titre_0 = 12 ; // Taille du titre 1
     $taille_titre_1 = 12 ; // Taille du titre 2
     $taille_titre_2 = 12 ; // Taille du titre 3
     $taille_titre_3 = 12 ; // Taille du titre 4
     $taille_titre_4 = 12 ; // Taille du titre 5
     $taille_titre_5 = 12 ; // Taille du titre 6
     $taille_titre_6 = 12 ; // Taille du titre 7
     $taille_titre_7 = 12 ; // Taille du titre 8
     $taille_titre_8 = 12 ; // Taille du titre 9
     $taille_titre_9 = 12 ; // Taille du titre 10
     
     $taille_entete_1 = 10 ; // Eleves
     $taille_entete_2 = 10 ; // Tous les autres
     $taille_entete_3 = 10 ; // Appreciations, Moy et moy c
     
     $taille_noms = 10 ; // Noms eleves
     $taille_notes = 10 ; // Notes eleves
     $taille_moy_nc = 10 ; // Moyennes eleves nc
     $taille_moy_c = 10 ; // Moyennes eleves coeff
     $taille_moy_eb = 10 ; // Moyennes examen blanc eleves
     $taille_appreciations = 5 ; // Appreciations eleves
     
     $taille_nom_moy = 9 ; // Nom
     $taille_notes_moy = 9 ; // Notes
     $taille_notes_moy_nc = 9 ; // Moyenne de la moyenne nc
     $taille_notes_moy_c = 9 ; // Moyenne de la moyenne coeff
     $taille_notes_moy_eb = 9 ; // Moyenne examen blanc
  
     $taille_nom_min = 9 ; // Nom
     $taille_notes_min = 9 ; // Notes minimum
     $taille_notes_min_nc = 9 ; // Minimum nc
     $taille_notes_min_c = 9 ; // Minimum coeff
     $taille_notes_min_eb = 9 ; // Moyenne examen blanc
     
     $taille_nom_max = 9 ; // Nom
     $taille_notes_max = 9 ; // Notes maximum
     $taille_notes_max_nc = 9 ; // Maximum nc
     $taille_notes_max_c = 9 ; // Maximum coeff
     $taille_notes_max_eb = 9 ; // Moyenne examen blanc

     // Appel carnet de notes
     $carnet = carnet_de_notes ($sp ["classe"],$sp ["discipline"],$id_service_prof,$periode,$millesime) ;
     
     // Ajouter une colonne par controle saisi
     //$nbr_col = Count ($date_c) ;
     $num_eleve = 0 ;
     $moy_tri = 0 ;
     $delta_tri = 0 ;
     $moy_el_min = $maxi_min ;
     $moy_el_max = $mini_max ;
     $moy_tri_eb = 0 ;
     $delta_tri_eb = 0 ;
     $moy_el_min_eb = $maxi_min ;
     $moy_el_max_eb = $mini_max ;
     $ok_c = 0 ;
 
     Include ("../../include/phppdflib.class.php") ;
     Include ("../../include/tableaux_pdf.inc") ;
  
     // Construction du tableau
     //
     // RENSEIGNEMENTS GENERAUX SUR LA (OU LES) PAGE(S)
     $table [0][0] = "a4" ; // Format de la page : letter, legal, executive, tabloid, a3, a4, a5
     $table [0][1] = "F" ;  // Orientation : F portrait, I paysage
     $table [0][2] = 2 ;    // Nombre de "titres"
     $table [0][3] = 0 ;    // Nombre de "cellules"
     $table [0][4] = 0 ;    // Nombre de "lignes"
   
     $table [0][5] = 20 ;   // Marge haut
     $table [0][6] = 40 ;   // Marge bas
     $table [0][7] = 15 ;   // Marge gauche
     $table [0][8] = 15 ;   // Marge droite
     
     $table [0][9] = 0 ;    // Lignes des cellules : 0 arret si plus de donnees 1 continu jusqu'au bout
     
     // TITRE 1
     // Recherche periode
     $table [0][11] = "Notes de ".nom_disc_long_parid ($sp ["discipline"]) ; // Titre 1
     $table [0][12] = "G" ;                             // Type de caracteres : G gras, N normal, I italique, M gras+italique
     $table [0][13] = "N" ;                             // Fond : G grisee, N normal
     $table [0][14] = "M" ;                             // Position : M milieu, G gauche, D droite
     $table [0][15] = "H" ;                             // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
     $table [0][16] = Chr (30+$taille_titre_0) ;    // Taille : Chr (30+$taille)
     $table [0][17] = 0 ;                               // Encadrement : 0 non, 1 oui
     
     // TITRE 2
     // Recherche periode
     $table [0][21] = nom_periode ($sp ["classe"])." ".$periode." - Classe : ".$nom_classe ; // Titre 2
     $table [0][22] = "G" ;                             // Type de caracteres : G gras, N normal, I italique, M gras+italique
     $table [0][23] = "N" ;                             // Fond : G grisee, N normal
     $table [0][24] = "M" ;                             // Position : M milieu, G gauche, D droite
     $table [0][25] = "H" ;                             // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
     $table [0][26] = Chr (30+$taille_titre_1) ;    // Taille : Chr (30+$taille)
     $table [0][27] = 0 ;                               // Encadrement : 0 non, 1 oui
     $num_entete = 1 ;
     If ($type_discipline == 0)
      {
       // ENTETES : LIGNE DE CELLULES 1 : DESCRIPTION
       If ($numerotation_lignes)
        {
         $table [$num_entete][11] = " " ;
         $num = 11 ;
         $table [$num_entete][0] = "NG" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "NN" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "MD" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+1).Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       Else
        {
         $num = 10 ;
         $table [$num_entete][0] = "G" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "N" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "D" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       $table [$num_entete][$num+1] = " Description " ;
       // Une colonne par note
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         // Mettre en tableau
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "G" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+$taille_entete_2) ; // Taille
         $table [$num_entete][$num+1+$i] = SubStr ($carnet [0][$i][2], 0, 10) ;
        }
       // Vide pour moyenne
       $table [$num_entete][0] .= "N" ;        // Type car
       $table [$num_entete][1] .= "N" ;        // Fond
       $table [$num_entete][2] .= "M" ;        // Position
       $table [$num_entete][3] .= "H" ;        // Fonte
       $table [$num_entete][4] .= Chr (30+1) ; // Taille
       $table [$num_entete][$num+2+$i] = " " ;
       // Colonne sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           $table [$num_entete][0] .= "N" ;        // Type car
           $table [$num_entete][1] .= "N" ;        // Fond
           $table [$num_entete][2] .= "M" ;        // Position
           $table [$num_entete][3] .= "H" ;        // Fonte
           $table [$num_entete][4] .= Chr (30+1) ; // Taille
           $table [$num_entete][$num+1+$i+$j] = " " ;
          }
        }
       // Colonne vide pour moyenne examen blanc
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "N" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+1) ; // Taille
         $table [$num_entete][$num+1+$i+$carnet [0][0][2]] = " " ;
        }
      
       // ENTETES : LIGNE DE CELLULES 2 : SOUS-MATIERE
       $num_entete++ ;
       If ($numerotation_lignes)
        {
         $table [$num_entete][11] = " " ;
         $num = 11 ;
         $table [$num_entete][0] = "NG" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "NN" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "MD" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+1).Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       Else
        {
         $num = 10 ;
         $table [$num_entete][0] = "G" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "N" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "D" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       $table [$num_entete][$num+1] = " Sous-mati".Chr (232)."re " ;
       // Une colonne par note
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         // Mettre en tableau
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "G" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+$taille_entete_2) ; // Taille
         $table [$num_entete][$num+1+$i] = SubStr ($carnet [0][$i][9], 0, 10) ;
        }
       // Vide
       $table [$num_entete][0] .= "N" ;        // Type car
       $table [$num_entete][1] .= "N" ;        // Fond
       $table [$num_entete][2] .= "M" ;        // Position
       $table [$num_entete][3] .= "H" ;        // Fonte
       $table [$num_entete][4] .= Chr (30+1) ; // Taille
       $table [$num_entete][$num+2+$i] = " " ;
       // Colonne sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           $table [$num_entete][0] .= "N" ;        // Type car
           $table [$num_entete][1] .= "N" ;        // Fond
           $table [$num_entete][2] .= "M" ;        // Position
           $table [$num_entete][3] .= "H" ;        // Fonte
           $table [$num_entete][4] .= Chr (30+1) ; // Taille
           $table [$num_entete][$num+1+$i+$j] = " " ;
          }
        }
       // Colonne vide pour moyenne examen blanc
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "N" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+1) ; // Taille
         $table [$num_entete][$num+2+$i+$carnet [0][0][2]] = " " ;
        } 
       
       // ENTETES : LIGNE DE CELLULES 3 : DATE
       $num_entete++ ;
       If ($numerotation_lignes)
        {
         $table [$num_entete][11] = " " ;
         $num = 11 ;
         $table [$num_entete][0] = "NG" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "NN" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "MD" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+1).Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       Else
        {
         $num = 10 ;
         $table [$num_entete][0] = "G" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "N" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "D" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       $table [3][$num+1] = " Date " ;
       // Une colonne par note
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         // Mettre en tableau
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "G" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+$taille_entete_2) ; // Taille
         $table [$num_entete][$num+1+$i] = decode_date_2 ($carnet [0][$i][1]) ;
        }
       // Vide
       $table [$num_entete][0] .= "N" ;        // Type car
       $table [$num_entete][1] .= "N" ;        // Fond
       $table [$num_entete][2] .= "M" ;        // Position
       $table [$num_entete][3] .= "H" ;        // Fonte
       $table [$num_entete][4] .= Chr (30+1) ; // Taille
       $table [$num_entete][$num+2+$i] = " " ;
       // Colonne sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           $table [$num_entete][0] .= "N" ;        // Type car
           $table [$num_entete][2] .= "M" ;        // Position
           $table [$num_entete][3] .= "H" ;        // Fonte
           If ($ok_exam == 1)
            {
             $table [$num_entete][1] .= "N" ;        // Fond
             $table [$num_entete][4] .= Chr (30+1) ; // Taille
             $table [$num_entete][$num+1+$i+$j] = " " ;
            }
           Else
            {
             $table [$num_entete][1] .= "G" ;        // Fond
             $table [$num_entete][4] .= Chr (30+$taille_entete_2) ; // Taille
             $table [$num_entete][$num+1+$i+$j] = "Moy.smat" ;
            }
          }
        }
       // Colonne vide pour moyenne examen blanc
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "N" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+1) ; // Taille
         $table [$num_entete][$num+2+$i+$carnet [0][0][2]] = " " ;
        }
      }
     If ($type_discipline == 0)
      {
       // ENTETES : LIGNE DE CELLULES 4 : COEFFICIENT
       $num_entete++ ;
       If ($numerotation_lignes)
        {
         $table [$num_entete][11] = " " ;
         $num = 11 ;
         $table [$num_entete][0] = "NG" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "NN" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "MD" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+1).Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       Else
        {
         $num = 10 ;
         $table [$num_entete][0] = "G" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "N" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "D" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       $table [4][$num+1] = " C".Chr (156)."fficient " ;
       // Une colonne par note
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         // Mettre en tableau
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "G" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+$taille_entete_2) ; // Taille
         $table [$num_entete][$num+1+$i] = Str_Replace (".", ",", $carnet [0][$i][3]) ;
        }
       // Moyenne ou Vide
       $table [$num_entete][0] .= "N" ;        // Type car
       $table [$num_entete][2] .= "M" ;        // Position
       $table [$num_entete][3] .= "H" ;        // Fonte
       If ($ok_exam == 1)
        {
         // Vide
         $table [$num_entete][1] .= "N" ;        // Fond
         $table [$num_entete][4] .= Chr (30+1) ; // Taille
         $table [$num_entete][$num+1+$i] = " " ;
         // Colonne sous-matieres si existe
         If ($carnet [0][0][2] > 0)
          {
           For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
            {
             $table [$num_entete][0] .= "N" ;        // Type car
             $table [$num_entete][1] .= "G" ;        // Fond
             $table [$num_entete][2] .= "M" ;        // Position
             $table [$num_entete][3] .= "H" ;        // Fonte
             $table [$num_entete][4] .= Chr (30+$taille_entete_2) ; // Taille
             $table [$num_entete][$num+1+$i+$j] = "Moy.smat" ;
            }
          }
         // Colonne vide pour moyenne examen blanc
         If (($ok_exam == 1) And ($ok_exam_blanc == 1))
          {
           $table [$num_entete][0] .= "N" ;        // Type car
           $table [$num_entete][1] .= "N" ;        // Fond
           $table [$num_entete][2] .= "M" ;        // Position
           $table [$num_entete][3] .= "H" ;        // Fonte
           $table [$num_entete][4] .= Chr (30+1) ; // Taille
           $table [$num_entete][$num+2+$i+$carnet [0][0][2]] = " " ;
          }
        }
       Else
        {
         // Moyenne
         $table [$num_entete][1] .= "G" ;        // Fond
         $table [$num_entete][4] .= Chr (30+$taille_entete_3) ; // Taille
         $table [$num_entete][$num+2+$i] = "Moyennes" ;
         // Colonne sous-matieres si existe
         If ($carnet [0][0][2] > 0)
          {
           For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
            {
             $table [$num_entete][0] .= "N" ;        // Type car
             $table [$num_entete][1] .= "G" ;        // Fond
             $table [$num_entete][2] .= "M" ;        // Position
             $table [$num_entete][3] .= "H" ;        // Fonte
             $table [$num_entete][4] .= Chr (30+$taille_entete_3) ; // Taille
             $table [$num_entete][$num+1+$i+$j] = $carnet [0][0][11+($j-1)*2] ;
	    }
          }
        }
      }
     // ENTETES : LIGNE DE CELLULES 5 : EXAMEN (SI CLASSE A)
     $num_entete++ ;
     If ($ok_exam == 1)
      {
       If ($numerotation_lignes)
        {
         $table [$num_entete][11] = " " ;
         $num = 11 ;
         $table [$num_entete][0] = "NG" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "NN" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "MD" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+1).Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       Else
        {
         $num = 10 ;
         $table [$num_entete][0] = "G" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [$num_entete][1] = "N" ;     // Fond des cellules : G grisee, N normal
         $table [$num_entete][2] = "D" ;     // Position : M milieu, G gauche, D droite
         $table [$num_entete][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [$num_entete][4] = Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
        }
       $table [5][$num+1] = " Examen blanc " ;
       // Une colonne par note
       For ($i = 1 ; $i <= $nombre_controles ; $i++)
        {
         // Mettre en tableau
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "G" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+$taille_entete_2) ; // Taille
	 If ($carnet [0][$i][6] > 0) { $table [$num_entete][$num+1+$i] = "Oui (".Str_Replace (".", ",", $carnet [0][$i][6]).")" ; }
	 Else { $table [$num_entete][$num+1+$i] = "NON" ; }
        }
       If ($type_discipline == 0)
        {
         // Moyennes
         $table [$num_entete][0] .= "N" ;        // Type car
         $table [$num_entete][1] .= "G" ;        // Fond
         $table [$num_entete][2] .= "M" ;        // Position
         $table [$num_entete][3] .= "H" ;        // Fonte
         $table [$num_entete][4] .= Chr (30+$taille_entete_3) ; // Taille
         $table [$num_entete][$num+1+$i] = "Moyennes" ;
         // Colonne sous-matieres si existe
         If ($carnet [0][0][2] > 0)
          {
           For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
            {
             $table [$num_entete][0] .= "N" ;        // Type car
             $table [$num_entete][1] .= "G" ;        // Fond
             $table [$num_entete][2] .= "M" ;        // Position
             $table [$num_entete][3] .= "H" ;        // Fonte
             $table [$num_entete][4] .= Chr (30+$taille_entete_3) ; // Taille
             $table [$num_entete][$num+1+$i+$j] = $carnet [0][0][11+($j-1)*2] ;
            }
          }
         // Colonne moyenne examen blanc
         If ($ok_exam_blanc == 1)
          {
           $table [$num_entete][0] .= "N" ;        // Type car
           $table [$num_entete][1] .= "G" ;        // Fond
           $table [$num_entete][2] .= "M" ;        // Position
           $table [$num_entete][3] .= "H" ;        // Fonte
           $table [$num_entete][4] .= Chr (30+$taille_entete_3) ; // Taille
           $table [$num_entete][$num+2+$i+$carnet [0][0][2]] = "Exam. blanc" ;
          }
        }
      }
     // ENTETES : LIGNE DE CELLULES 5 : NOTE SUR
     If ($numerotation_lignes)
      {
       $table [$num_entete+$ok_exam][11] = "n".Chr (186) ;
       $num = 11 ;
       $table [$num_entete+$ok_exam][0] = "NG" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [$num_entete+$ok_exam][1] = "GG" ;     // Fond des cellules : G grisee, N normal
       $table [$num_entete+$ok_exam][2] = "MG" ;     // Position : M milieu, G gauche, D droite
       $table [$num_entete+$ok_exam][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [$num_entete+$ok_exam][4] = Chr (30+$taille_numerotation_lignes).Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
      }
     Else
      {
       $num = 10 ;
       $table [$num_entete+$ok_exam][0] = "G" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [$num_entete+$ok_exam][1] = "G" ;     // Fond des cellules : G grisee, N normal
       $table [$num_entete+$ok_exam][2] = "G" ;     // Position : M milieu, G gauche, D droite
       $table [$num_entete+$ok_exam][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [$num_entete+$ok_exam][4] = Chr (30+$taille_entete_1) ; // Taille : Chr (30+$taille)
      }
     $table [$num_entete+$ok_exam][$num+1] = " ".Chr (233)."l".Chr (232)."ve" ;
     // Une colonne par note
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       // Mettre en tableau
       $table [$num_entete+$ok_exam][0] .= "N" ;        // Type car
       $table [$num_entete+$ok_exam][1] .= "G" ;        // Fond
       $table [$num_entete+$ok_exam][2] .= "M" ;        // Position
       $table [$num_entete+$ok_exam][3] .= "H" ;        // Fonte
       $table [$num_entete+$ok_exam][4] .= Chr (30+$taille_entete_2) ; // Taille
       If ($type_moyenne == MOYENNE_NORMALE) { $table [$num_entete+$ok_exam][$num+1+$i] = "/".Str_Replace (".", ",", $carnet [0][$i][7]) ; }
       ElseIf ($type_moyenne == MOYENNE_POURCENT) { $table [$num_entete+$ok_exam][$num+1+$i] = "%" ; }
      }
     If ($type_discipline == 0)
      {
       // Moyenne sur
       $table [$num_entete+$ok_exam][0] .= "N" ;        // Type car
       $table [$num_entete+$ok_exam][1] .= "G" ;        // Fond
       $table [$num_entete+$ok_exam][2] .= "M" ;        // Position
       $table [$num_entete+$ok_exam][3] .= "H" ;        // Fonte
       $table [$num_entete+$ok_exam][4] .= Chr (30+$taille_entete_3) ; // Taille
       If ($type_moyenne == MOYENNE_NORMALE) { $table [$num_entete+$ok_exam][$num+1+$i] = "/".Str_Replace (".", ",", $gestion ["max"]) ; }
       ElseIf ($type_moyenne == MOYENNE_POURCENT) { $table [$num_entete+$ok_exam][$num+1+$i] = "%" ; }
       // Colonne sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           $table [$num_entete+$ok_exam][0] .= "N" ;        // Type car
           $table [$num_entete+$ok_exam][1] .= "G" ;        // Fond
           $table [$num_entete+$ok_exam][2] .= "M" ;        // Position
           $table [$num_entete+$ok_exam][3] .= "H" ;        // Fonte
           $table [$num_entete+$ok_exam][4] .= Chr (30+$taille_entete_3) ; // Taille
	   If ($type_moyenne == MOYENNE_NORMALE) { $table [$num_entete+$ok_exam][$num+1+$i+$j] = "/".Str_Replace (".", ",", $gestion ["max"]) ; }
           ElseIf ($type_moyenne == MOYENNE_POURCENT) { $table [$num_entete+$ok_exam][$num+1+$i+$j] = "%" ; }
          }
        }
       // Colonne vide pour moyenne examen blanc
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         $table [$num_entete+$ok_exam][0] .= "N" ;        // Type car
         $table [$num_entete+$ok_exam][1] .= "G" ;        // Fond
         $table [$num_entete+$ok_exam][2] .= "M" ;        // Position
         $table [$num_entete+$ok_exam][3] .= "H" ;        // Fonte
         $table [$num_entete+$ok_exam][4] .= Chr (30+$taille_entete_3) ; // Taille
	 If ($type_moyenne == MOYENNE_NORMALE) { $table [$num_entete+$ok_exam][$num+2+$i+$carnet [0][0][2]] = "/".Str_Replace (".", ",", $gestion ["max"]) ; }
	 ElseIf ($type_moyenne == MOYENNE_POURCENT) { $table [$num_entete+$ok_exam][$num+2+$i+$carnet [0][0][2]] = "%" ; }
        }
      }
     $table [0][10] = $num_entete+$ok_exam-1 ;
     
     // Les autres colonnes
     $num_c = 1 ;
     $optionnelle = estoptionnelle ($sp ["discipline"], $sp ["classe"], $sp ["service_classe"]) ;
     $compteur = $num_entete+$ok_exam-1 ; //4+$ok_exam ;
     For ($j = 1 ; $j <= $carnet [0][0][1] ; $j++)
      {
       $num_c++ ;
       $compteur++ ;
       For ($k = 1 ; $k <= $carnet [0][0][2] ; $k++)
        {
         $car_sm [$num_eleve][0][$carnet [0][0][10+($k-1)*2]] = 0 ; // Somme
         $car_sm [$num_eleve][1][$carnet [0][0][10+($k-1)*2]] = 0 ; // Somme coefficients
        }
       
       // Ligne de cellules 1+$compteur
       If ($numerotation_lignes)
        {
         $table [1+$compteur][11] = $compteur-3-$ok_exam ;
         $num = 11 ;
         $table [1+$compteur][0] = "NN" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [1+$compteur][1] = "AA" ;     // Fond des cellules : G grisee, N normal, A grisee par alternance
         $table [1+$compteur][2] = "MG" ;     // Position : M milieu, G gauche, D droite
         $table [1+$compteur][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [1+$compteur][4] = Chr (30+$taille_numerotation_lignes).Chr (30+$taille_noms) ; // Taille : Chr (30+$taille)
        }
       Else
        {
         $num = 10 ;
         $table [1+$compteur][0] = "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [1+$compteur][1] = "A" ;     // Fond des cellules : G grisee, N normal
         $table [1+$compteur][2] = "G" ;     // Position : M milieu, G gauche, D droite
         $table [1+$compteur][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [1+$compteur][4] = Chr (30+$taille_noms) ; // Taille : Chr (30+$taille)
        }
     
       // Colonne eleve
       If (StrPos ($carnet [$j][0][2], " ")) { $prenom = SubStr ($carnet [$j][0][2], 0, StrPos ($carnet [$j][0][2], " ")) ; }
       Else { $prenom = $carnet [$j][0][2] ; }
       $prenom = StrToUpper (SubStr ($prenom, 0, 1)).StrToLower (SubStr ($prenom, 1, StrLen ($prenom)-1)) ;
       $table [1+$compteur][$num+1] = " ".$carnet [$j][0][1]." ".$prenom ;
       
       // Mise a zero du compteurs de colonne moyenne partielle
       $moyenne = 0 ;
       $delta = 0 ;
       $moy_exam_blanc = 0 ;
       $delta_exam_blanc = 0 ;
       // Colonnes des controles deja saisis [count ($c)]
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [1+$compteur][1] .= "A" ;     // Fond des cellules : G grisee, N normal
         $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
         $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [1+$compteur][4] .= Chr (30+$taille_notes) ; // Taille : Chr (30+$taille)
         
         //$lecontrole = $c [$i] ;
         
	 $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", $carnet [$j][$i][1]) ;
	 If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i] .= "%" ; }
         
         //$note [$num_eleve][$i] = $lin_el [3] ;
         If (($carnet [$j][$i][1] != $code_absent) And ($carnet [$j][$i][1] != $code_non_rendu) And ($carnet [$j][$i][1] != $code_dispense) And ($carnet [$j][$i][1] != $code_aucune_note))
          {
           // Moyenne normale
           $moyenne += ((float)$carnet [$j][$i][1]*$gestion ["max"]/$carnet [0][$i][7])*$carnet [0][$i][3] ;
           $delta += $carnet [0][$i][3] ;
           // Moyenne sous-matieres
           For ($k = 1 ; $k <= $carnet [0][0][2] ; $k++)
            {
             If ($carnet [0][$i][8] == $carnet [0][0][10+($k-1)*2])
              {
               $car_sm [$num_eleve][0][$carnet [0][0][10+($k-1)*2]] += ((float)$carnet [$j][$i][1]*$gestion ["max"]/$carnet [0][$i][7])*$carnet [0][$i][3] ;
               $car_sm [$num_eleve][1][$carnet [0][0][10+($k-1)*2]] += $carnet [0][$i][3] ;
              }
            }
           // Moyenne exam
	   If (($ok_exam == 1) And ($carnet [0][$i][6] > 0))
	    {
	     $moy_exam_blanc += ($carnet [$j][$i][1]*$gestion ["max"]/$carnet [0][$i][7])*$carnet [0][$i][6] ;
             $delta_exam_blanc += $carnet [0][$i][6] ;
	    }
          }
        }
       
       If ($type_discipline == 0)
        {
         // Colonne moyenne partielle
         $table [1+$compteur][1] .= "A" ;     // Fond des cellules : G grisee, N normal, A grisee par alternance
         $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
         $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [1+$compteur][4] .= Chr (30+$taille_moy_nc) ; // Taille : Chr (30+$taille)
         If ($delta > 0)
          {
	   $moy = $moyenne/$delta ;
	   If ($moy < Ceil ($gestion ["max"]/2)) { $table [1+$compteur][0] .= "G" ; } Else { $table [1+$compteur][0] .= "N" ; } // Type de caracteres : G gras, N normal, I italique, M gras+italique
           If ($moy < $moy_el_min) { $moy_el_min = $moy ; $ok_c = 1 ; }
           If ($moy > $moy_el_max) { $moy_el_max = $moy ; $ok_c = 1 ; }
           //$table [1+$compteur][$num+2+$i] = Str_Replace (".", ",", $lin_c [0]) ;
           If ($moy < 10)
            {
             $table [1+$compteur][$num+1+$i] = "0".Str_Replace (".", ",", arrondi_note ($moy, $format_arrondi)) ;
            }
           Else
            {
  	     $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", arrondi_note ($moy, $format_arrondi)) ;
            }
           $moy_tri += $moyenne/$delta ;
           $delta_tri++ ;
	   If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i] .= "%" ; }
          }
         Else
          {
           $table [1+$compteur][$num+1+$i] = "" ;
          }
         // Colonne sous-matieres si existe
         If ($carnet [0][0][2] > 0)
          {
           For ($k = 1 ; $k <= $carnet [0][0][2] ; $k++)
            {
             $table [1+$compteur][1] .= "A" ;        // Fond
             $table [1+$compteur][2] .= "M" ;        // Position
             $table [1+$compteur][3] .= "H" ;        // Fonte
             $table [1+$compteur][4] .= Chr (30+$taille_moy_nc) ; // Taille
             If ($car_sm [$num_eleve][1][$carnet [0][0][10+($k-1)*2]] > 0)
              {
               $c = $car_sm [$num_eleve][0][$carnet [0][0][10+($k-1)*2]]/$car_sm [$num_eleve][1][$carnet [0][0][10+($k-1)*2]] ;
               If ($c < Ceil ($gestion ["max"]/2)) { $table [1+$compteur][0] .= "G" ; } Else { $table [1+$compteur][0] .= "N" ; } // Type de caracteres : G gras, N normal, I italique, M gras+italique
               $table [1+$compteur][$num+1+$i+$k] = Str_Replace (".", ",", arrondi_note ($c, $format_arrondi)) ;
	       If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i+$k] .= "%" ; }
              }
             Else { $table [1+$compteur][$num+1+$i+$k] = "--" ; }
            }
          }
         // Colonne moyenne examen blanc partielle
         If (($ok_exam == 1) And ($ok_exam_blanc == 1))
          {
	   $table [1+$compteur][1] .= "A" ;     // Fond des cellules : G grisee, N normal, A grisee par alternance
           $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
           $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
           $table [1+$compteur][4] .= Chr (30+$taille_moy_eb) ; // Taille : Chr (30+$taille)
	   If ($delta_exam_blanc > 0)
            {
	     $moy_eb = $moy_exam_blanc/$delta_exam_blanc ;
	     If ($moy_eb < Ceil ($gestion ["max"]/2)) { $table [1+$compteur][0] .= "G" ; } Else { $table [1+$compteur][0] .= "N" ; } // Type de caracteres : G gras, N normal, I italique, M gras+italique
             If ($moy_eb < $moy_el_min_eb) { $moy_el_min_eb = $moy_eb ; $ok_c_eb = 1 ; }
             If ($moy_eb > $moy_el_max_eb) { $moy_el_max_eb = $moy_eb ; $ok_c_eb = 1 ; }
             //$table [1+$compteur][$num+3+$i] = Str_Replace (".", ",", $lin_c [0]) ;
             If ($moy_eb < 10) { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = "0".Str_Replace (".", ",", arrondi_note ($moy_eb, $format_arrondi)) ; }
             Else { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = Str_Replace (".", ",", arrondi_note ($moy_eb, $format_arrondi)) ; }
             $moy_tri_eb += $moy_exam_blanc/$delta_exam_blanc ;
             $delta_tri_eb++ ;
            }
           Else { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = "" ; }
	   If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] .= "%" ; }
          }
	}
       $num_eleve++ ;
      }
     
     // Ligne moyenne
     $compteur++ ;
     // Ligne de cellules 1+$compteur
     If ($numerotation_lignes)
      {
       $table [1+$compteur][11] = " " ;
       $num = 11 ;
       $table [1+$compteur][0] = "NN" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] = "NG" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] = "MD" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] = Chr (30+1).Chr (30+$taille_nom_moy) ; // Taille : Chr (30+$taille)
      }
     Else
      {
       $num = 10 ;
       $table [1+$compteur][0] = "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] = "G" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] = "D" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] = Chr (30+$taille_nom_moy) ; // Taille : Chr (30+$taille)
      }
     $table [1+$compteur][$num+1] = "Moyenne Classe " ;
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] .= Chr (30+$taille_notes_moy) ; // Taille : Chr (30+$taille)
       $moy = 0 ;
       $delta = 0 ;
       $min [$i] = $max [$i] = "-" ;
       For ($j = 1 ; $j <= $carnet [0][0][1] ; $j++)
        {
         If (($carnet [$j][$i][1] != $code_absent) And ($carnet [$j][$i][1] != $code_non_rendu) And ($carnet [$j][$i][1] != $code_dispense) And ($carnet [$j][$i][1] != $code_aucune_note))
          {
           $moy += $carnet [$j][$i][1] ;
           $delta++ ;
	   If ($min [$i] == "-") { $min [$i] = $max [$i] = $carnet [$j][$i][1] ; }
	   Else
	    {
             If ($carnet [$j][$i][1] < $min [$i]) { $min [$i] = $carnet [$j][$i][1] ; }
             If ($carnet [$j][$i][1] > $max [$i]) { $max [$i] = $carnet [$j][$i][1] ; }
	    }
          }
        }
       If ($delta > 0)
        {
	 $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", arrondi_note ($moy/$delta, $format_arrondi)) ;
	 If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i] .= "%" ; }
	}
       Else { $table [1+$compteur][$num+1+$i] = " " ; }
      }
     If ($type_discipline == 0)
      {
       $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] .= Chr (30+$taille_notes_moy_nc) ; // Taille : Chr (30+$taille)
       If (($moy_tri > 0) And ($delta_tri > 0)) { $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", arrondi_note ($moy_tri/$delta_tri, $format_arrondi)) ; }
       Else { $table [1+$compteur][$num+1+$i] = " " ; }
       // Colonne moyennes sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           $c1 = $c2 = 0 ;
           For ($k = 0 ; $k < $num_eleve ; $k++)
            {
             If ($car_sm [$k][1][$carnet [0][0][10+($j-1)*2]] > 0)
              {
               $c1 += ($car_sm [$k][0][$carnet [0][0][10+($j-1)*2]]/$car_sm [$k][1][$carnet [0][0][10+($j-1)*2]]) ;
               $c2++ ;
              }
            }
           $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
           $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
           $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
           $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
           $table [1+$compteur][4] .= Chr (30+$taille_notes_moy_nc) ; // Taille : Chr (30+$taille)
           $table [1+$compteur][$num+1+$i+$j] = Str_Replace (".", ",", arrondi_note ($c1/$c2, $format_arrondi)) ;
	   If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i+$j] .= "%" ; }
          }
        }
       // Colonne moyenne examen blanc partielle
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
         $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
         $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [1+$compteur][4] .= Chr (30+$taille_notes_moy_eb) ; // Taille : Chr (30+$taille)
         If (($moy_tri_eb > 0) And ($delta_tri_eb > 0))
          {
           $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = Str_Replace (".", ",", arrondi_note ($moy_tri_eb/$delta_tri_eb, $format_arrondi)) ;
	   If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] .= "%" ; }
          }
         Else { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = " " ; }
        }
      }
 
     // Affichage de la ligne minimum
     $compteur++ ;
     // Ligne de cellules 1+$compteur
     If ($numerotation_lignes)
      {
       $table [1+$compteur][11] = " " ;
       $num = 11 ;
       $table [1+$compteur][0] = "NN" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] = "NA" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] = "MD" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] = Chr (30+1).Chr (30+$taille_nom_min) ; // Taille : Chr (30+$taille)
      }
     Else
      {
       $num = 10 ;
       $table [1+$compteur][0] = "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] = "A" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] = "D" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] = Chr (30+$taille_nom_min) ; // Taille : Chr (30+$taille)
      }
     $table [1+$compteur][$num+1] = "Note minimum" ;
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] .= "A" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] .= Chr (30+$taille_notes_min) ; // Taille : Chr (30+$taille)
       $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", arrondi_note ($min [$i], $format_arrondi)) ;
       If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i] .= "%" ; }
      }
     If ($type_discipline == 0)
      {
       $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] .= "A" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] .= Chr (30+$taille_notes_min_nc) ; // Taille : Chr (30+$taille)
       If ($ok_c) { $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", arrondi_note ($moy_el_min, $format_arrondi)) ; }
       Else { $table [1+$compteur][$num+1+$i] = " " ; }
       // Colonne maximum sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           $c1 = $car_sm [0][0][$carnet [0][0][10+($j-1)*2]] ;
           $c2 = $car_sm [0][1][$carnet [0][0][10+($j-1)*2]] ;
           If ($c2 > 0) { $c = $c1/$c2 ; } Else { $c = $maxi_min ; }
           For ($k = 1 ; $k < $num_eleve ; $k++)
            {
             $c1 = $car_sm [$k][0][$carnet [0][0][10+($j-1)*2]] ;
             $c2 = $car_sm [$k][1][$carnet [0][0][10+($j-1)*2]] ;
             If ($c2 > 0) { If ($c1/$c2 < $c) { $c = $c1/$c2 ; } }
            }
           $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
           $table [1+$compteur][1] .= "A" ;     // Fond des cellules : G grisee, N normal
           $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
           $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
           $table [1+$compteur][4] .= Chr (30+$taille_notes_max_nc) ; // Taille : Chr (30+$taille)
           If ($c != $maxi_min)
	    {
	     $table [1+$compteur][$num+1+$i+$j] = Str_Replace (".", ",", arrondi_note ($c, $format_arrondi)) ;
	     If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i+$j] .= "%" ; }
	    }
           Else { $table [1+$compteur][$num+1+$i+$j] = "--" ; }
          }
        }
       // Colonne moyenne examen blanc partielle
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [1+$compteur][1] .= "A" ;     // Fond des cellules : G grisee, N normal
         $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
         $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [1+$compteur][4] .= Chr (30+$taille_notes_min_eb) ; // Taille : Chr (30+$taille)
         If ($ok_c_eb) { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = Str_Replace (".", ",", arrondi_note ($moy_el_min_eb, $format_arrondi)) ; }
         Else { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = " " ; }
        }
      }
     // Affichage de la ligne maximum
     $compteur++ ;
     // Ligne de cellules 1+$compteur
     If ($numerotation_lignes)
      {
       $table [1+$compteur][11] = " " ;
       $num = 11 ;
       $table [1+$compteur][0] = "NN" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] = "NG" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] = "MD" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] = "HH" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] = Chr (30+1).Chr (30+$taille_nom_max) ; // Taille : Chr (30+$taille)
      }
     Else
      {
       $num = 10 ;
       $table [1+$compteur][0] = "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] = "G" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] = "D" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] = "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] = Chr (30+$taille_nom_max) ; // Taille : Chr (30+$taille)
      }
     $table [1+$compteur][$num+1] = "Note maximum" ;
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] .= Chr (30+$taille_notes_max) ; // Taille : Chr (30+$taille)
       $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", arrondi_note ($max [$i], $format_arrondi)) ;
       If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i] .= "%" ; }
      }
     If ($type_discipline == 0)
      {
       $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
       $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
       $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
       $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
       $table [1+$compteur][4] .= Chr (30+$taille_notes_max_nc) ; // Taille : Chr (30+$taille)
       If ($ok_c) { $table [1+$compteur][$num+1+$i] = Str_Replace (".", ",", arrondi_note ($moy_el_max, $format_arrondi)) ; }
       Else { $table [1+$compteur][$num+1+$i] = " " ; }
       // Colonne maximum sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           $c1 = $car_sm [0][0][$carnet [0][0][10+($j-1)*2]] ;
           $c2 = $car_sm [0][1][$carnet [0][0][10+($j-1)*2]] ;
           If ($c2 > 0) { $c = $c1/$c2 ; } Else { $c = $mini_max ; }
           For ($k = 1 ; $k < $num_eleve ; $k++)
            {
             $c1 = $car_sm [$k][0][$carnet [0][0][10+($j-1)*2]] ;
             $c2 = $car_sm [$k][1][$carnet [0][0][10+($j-1)*2]] ;
             If ($c2 > 0) { If ($c1/$c2 > $c) { $c = $c1/$c2 ; } }
            }
           $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
           $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
           $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
           $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
           $table [1+$compteur][4] .= Chr (30+$taille_notes_max_nc) ; // Taille : Chr (30+$taille)
           If ($c != $mini_max)
	    {
	     $table [1+$compteur][$num+1+$i+$j] = Str_Replace (".", ",", arrondi_note ($c, $format_arrondi)) ;
	     If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+1+$i+$j] .= "%" ; }
	    }
           Else { $table [1+$compteur][$num+1+$i+$j] = "--" ; }
          }
        }
       // Colonne moyenne examen blanc partielle
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         $table [1+$compteur][0] .= "N" ;     // Type de caracteres : G gras, N normal, I italique, M gras+italique
         $table [1+$compteur][1] .= "G" ;     // Fond des cellules : G grisee, N normal
         $table [1+$compteur][2] .= "M" ;     // Position : M milieu, G gauche, D droite
         $table [1+$compteur][3] .= "H" ;     // Fonte : H helvetica, C courrier, T times roman, S symbol, Z zapfdingbats
         $table [1+$compteur][4] .= Chr (30+$taille_notes_max_eb) ; // Taille : Chr (30+$taille)
         If ($ok_c_eb)
	  {
	   $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = Str_Replace (".", ",", arrondi_note ($moy_el_max_eb, $format_arrondi)) ;
	   If ($type_moyenne == MOYENNE_POURCENT) { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] .= "%" ; }
	  }
         Else { $table [1+$compteur][$num+2+$i+$carnet [0][0][2]] = " " ; }
        }
      }
     If ($type_discipline == 0)
      {
       $table [0][3] = $carnet [0][0][0]+2+$ok_exam_blanc+$numerotation_lignes+$carnet [0][0][2] ; // Nombre de cellules
      }
     ElseIf ($type_discipline == 3)
      {
       $table [0][3] = $carnet [0][0][0]+1+$numerotation_lignes ; // Nombre de cellules
      }
     $table [0][4] = $compteur+1 ; // Nombre de lignes
     If ($compteur > 0) { tableau_pdf ($table, "carnet_de_notes", 1) ; }
     Else
      {
       // Aucune donnees
       Echo "<html><body background=\"".$rep_themes."/".$param_theme ["nom_repertoire"]."/".$theme [9][10]."\" onContextMenu=\"return false\">" ;
       Echo "<br><br><br><center><b>Aucune donn&eacute;e !</b><br><a href=\"javascript:window.close();\">Fermer la fen&egrave;tre</a></center></body></html>" ;
      }
    }
   Else
    {
     Echo entete_page ("","") ;
     // Procedure d'appel du calcul du PDF
     Echo "<html><head><title>Garennes.</title>" ;
     //Echo "<meta http-equiv=\"refresh\" content=\"1;url=./saisie_notes.php?type=".$type."&impression=".(-$impression)."&code=".$_SESSION ["code"] ;
     //If ($droit_courant != $droit_prof) { Echo "&periode=".$periode."&menu=".$menu ; }
     //Echo "\">" ;
     Echo "</head><body background=\"".$rep_themes."/".$param_theme ["nom_repertoire"]."/".$theme [9][10]."\" onContextMenu=\"return false\">" ;
     Echo "<center><b>Cr&eacute;ation du PDF des notes pour impression.<br>Calcul en cours ... Veuillez patienter !</b><br>" ;
     Echo "<img src=\"".$rep_themes."/".$param_theme ["nom_repertoire"]."/".$theme [9][11]."\" border=\"1\" style=\"border=1px solid ".$theme [0][42]."\"></center>" ;
     Echo "<form action=\"./saisie_notes.php\" method=\"post\" name=\"f\">" ;
     Echo "<input type=\"hidden\" name=\"impression\" value=\"".(-$impression)."\">" ;
     Echo "<input type=\"hidden\" name=\"code\" value=\"".$_SESSION ["code"]."\">" ;
     Echo "<input type=\"hidden\" name=\"type\" value=\"".$type."\">" ;
     If ($droit_courant != $droit_prof) { Echo "<input type=\"hidden\" name=\"periode\" value=\"".$periode."\"><input type=\"hidden\" name=\"menu\" value=\"".$menu."\">" ; }
     Echo "</form><script>window.focus();function valide(){document.f.submit()} validation=setTimeout(\"valide()\",1000)</script>" ;
     Echo "</body></html>" ;
    }
  }
 Else
  {
   // Enregistrement de la saisie
   If (IsSet ($saisie) And ($saisie == 1))
    {
     $nd = restaure_configuration ("PROF_".$professeur."_".$id_service_prof,"SAISIE","NOTES_DEFAUT") ;
     $note_defaut = var_courante ("note_defaut", 0, $code_absent) ;
     If ($note_defaut != $nd) { sauvegarde_configuration ("PROF_".$professeur."_".$id_service_prof,"SAISIE","NOTES_DEFAUT",$note_defaut) ; }
     // Verification qu'au moins une valeur numerique existe (evite tout a A, ou ?, ou D, ou N)
     $ok_note = 0 ;
     For ($i = 1 ; $i <= $nombre_notes ; $i++)
      {
       // Mise en forme de la note
       $valeur = formate_note (var_courante ("note".$i, 0, "-")) ;
       If (Is_Numeric ($valeur)) { $ok_note = 1 ; }
      }
     If ($ok_note == 1)
      {
       // Enregistrement du controle
       // Recherche identifiant unique pour la classe
       $resultat = SQL_commande ("SELECT nom_bref FROM classes WHERE id_classe='".$sp ["classe"]."' LIMIT 1", $id_sql) ;
       $ligne = SQL_ligne_suivante ($resultat) ;
       $code_c = $ligne [0] ;
       // Recherche identifiant unique pour le professeur
       $resultat = SQL_commande ("SELECT numen FROM utilisateurs WHERE id_utilisateur='".$professeur."' LIMIT 1", $id_sql) ;
       $ligne = SQL_ligne_suivante ($resultat) ;
       $code_p = $ligne [0] ;
       // Recherche identifiant unique pour la discipline
       $resultat = SQL_commande ("SELECT code FROM disciplines WHERE id_discipline='".$discipline."' LIMIT 1", $id_sql) ;
       $ligne = SQL_ligne_suivante ($resultat) ;
       $code_d = $ligne [0] ;
       // Recherche de la session courante
       $resultat = SQL_commande ("SELECT * FROM sessions WHERE id_session='".$_SESSION ["code"]."' LIMIT 1", $id_sql) ;
       $param = SQL_tableau_associatif ($resultat, "") ;
       $param ["description"] = filtrage ($param ["description"]) ;
       // Ajout pour compatibilite datetime et date
       $prd = Explode (" ", $param ["date"]) ;
       $param ["date"] = $prd [0] ;
       
       $note_max = $param ["max"] ;
       If ($note_max <= 0)
        {
         If ($note_par_defaut <= 0) { $note_max = $gestion ["max"] ; }
         Else { $note_max = $note_par_defaut ; }
        }
       $sous_mat = $param ["sous_matiere"] ;
       If ($sous_mat < 1) { $sous_mat = 0 ; }
       
       $dh = Date ("Y-m-j H:i:s") ;
       $ct = SQL_commande ("INSERT INTO controles (date,classe,code_classe,professeur,numen,discipline,code_disc,service_prof,description,coefficient,periode,enregistrement,examen,max,id,sous_matiere,millesime)
                            VALUES ('".$param ["date"]."','".$sp ["classe"]."','".$code_c."','".$professeur."','".$code_p."','".$discipline."','".$code_d."','".$id_service_prof."','".$param ["description"]."',
			            '".$param ["coefficient"]."','".$periode."','".$dh."','".$param ["examen"]."','".$note_max."','".Session_Id()."','".$sous_mat."','".$millesime."')", $id_sql) ;
       $cnntrnle = SQL_commande ("SELECT id_controle,coefficient AS a FROM controles
                                   WHERE date='".$param ["date"]."' AND classe='".$sp ["classe"]."'
				     AND code_classe='".$code_c."' AND professeur='".$professeur."'
				     AND numen='".$code_p."' AND discipline='".$discipline."'
				     AND code_disc='".$code_d."' AND service_prof='".$id_service_prof."'
				     AND description='".$param ["description"]."' AND periode='".$periode."'
				     AND enregistrement='".$dh."' AND examen='".$param ["examen"]."'
				     AND max='".$note_max."' AND id='".Session_Id()."' AND sous_matiere='".$sous_mat."'
				     AND millesime='".$millesime."' HAVING ABS(a-".$param ["coefficient"].")<0.001
                                   LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($cnntrnle) == 1)
        {
         $ctrl = SQL_ligne_suivante ($cnntrnle) ;
         $controle = $ctrl [0] ;
        }
       Else
        {
         $cnntrnle = SQL_commande ("SELECT MAX(id_controle) FROM controles WHERE millesime='".$millesime."'", $id_sql) ;
         $controle = $ctrl [0] ;
        }
     
       // Enregistrement des notes
       $requete = "INSERT INTO notes (eleve,repere1,repere2,valeur,controle,id,enregistrement,millesime) VALUES " ;
       $oki = 0 ;
       $nbr_notes = 0 ;
       $message_erreur [0][0] = 0 ;
       $message_erreur [0][2] = $note_max ;
       $mini = $maxi = "-" ; $somme = 0 ; $delta = 0 ;
       For ($i = 1 ; $i <= $nombre_notes ; $i++)
        {
         // Recherche identifiant unique pour l'eleve
         $id_eleve = var_courante ("el".$i, 0, 0) ;
         $resultat = SQL_commande ("SELECT repere1,repere2,nom,prenoms FROM eleves WHERE id_eleve='".$id_eleve."' LIMIT 1", $id_sql) ;
         $ligne = SQL_ligne_suivante ($resultat) ;
	 // Mise en forme de la note
	 $valeur = formate_note (var_courante ("note".$i, 0, $note_defaut), $note_defaut) ;
         If (Is_Numeric ($valeur))
          {
           // Reduire
	   $err = 0 ;
           While ($valeur > $note_max)
	    {
	     If ($err == 0) { $err = 1 ; $v = $valeur ; }
	     $valeur = $valeur/10 ;
	    }
	   // Message d'erreur
	   If ($err == 1)
	    {
	     $message_erreur [0][0]++ ;
	     $message_erreur [0][1] = 1 ;
	     $message_erreur [$message_erreur [0][0]][0] = Str_Replace (".", ",", $v) ;
	     $message_erreur [$message_erreur [0][0]][1] = Str_Replace (".", ",", $valeur) ;
	     $message_erreur [$message_erreur [0][0]][2] = $ligne [2] ;
             If (StrPos ($ligne [3], " ")) { $prenom = SubStr ($ligne [3], 0, StrPos ($ligne [3], " ")) ; }
             Else { $prenom = $ligne [3] ; }
	     $message_erreur [$message_erreur [0][0]][3] = StrToUpper (SubStr ($prenom, 0, 1)).StrToLower (SubStr ($prenom, 1, StrLen ($prenom)-1)) ;
	    }
	   // Enregistre les caracteristiques
	   $delta++ ;
	   $somme += $valeur ;
	   If ($mini == "-") { $mini = $valeur ; } ElseIf ($valeur < $mini) { $mini = $valeur ; }
	   If ($maxi == "-") { $maxi = $valeur ; } ElseIf ($valeur > $maxi) { $maxi = $valeur ; }
          }
         ElseIf (StrToUpper ($valeur) == StrToUpper ($code_absent)) { $valeur = $code_absent ; }
         ElseIf (StrToUpper ($valeur) == StrToUpper ($code_non_rendu)) { $valeur = $code_non_rendu ; }
         ElseIf (StrToUpper ($valeur) == StrToUpper ($code_dispense)) { $valeur = $code_dispense ; }
         Else
          {
           // Valeur par defaut
	   If ($note_defaut != "") { $valeur = $note_defaut ; } Else { $valeur = $code_aucune_note ; }
          }
         If ($oki == 1) { $requete .= "," ; }
         $requete .= "('".$id_eleve."','".$ligne [0]."','".$ligne [1]."','".$valeur."','".$controle."','".Session_Id()."','".$dh."','".$millesime."')" ;
         $nbr_notes++ ;
         $oki = 1 ;
        }
       If ($oki == 1) { $resultat = SQL_commande ($requete, $id_sql) ; }
       $res = SQL_commande ("UPDATE sessions SET description='',coefficient='1',date='".Date ("Y-m-j")." 00:00:00',examen='0',max='".$note_par_defaut."',sous_matiere='0' WHERE id_session='".$_SESSION ["code"]."' LIMIT 1", $id_sql) ;
       $res = SQL_commande ("UPDATE calcul_moyenne SET ok='0' WHERE classe='".$sp ["classe"]."' AND periode='".$periode."' AND service_prof='".$sp ["id_service_prof"]."' AND service_classe='".$sp ["service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
       sauvegarde_moyenne ($sp ["classe"],$controle,$sp ["service_classe"],$sp ["id_service_prof"],$periode,$mini,NOTE_MIN_CONTROLE,$millesime) ;
       sauvegarde_moyenne ($sp ["classe"],$controle,$sp ["service_classe"],$sp ["id_service_prof"],$periode,$maxi,NOTE_MAX_CONTROLE,$millesime) ;
       sauvegarde_moyenne ($sp ["classe"],$controle,$sp ["service_classe"],$sp ["id_service_prof"],$periode,$moy,NOTE_MOY_CONTROLE,$millesime) ;
       $ok_moy = 0 ;
       If ($nbr_notes != $nombre_notes) { Echo "ALERTE" ; }
      }
     Else
      {
       // Aucune saisie d'une note numerique
       $message_erreur [0][0] = 1 ;
       $message_erreur [0][1] = 2 ;
      }
    }
   ElseIf ((IsSet ($exam)) And ($exam == 1))
    {
     $res = SQL_commande ("UPDATE controles SET examen='".$valeur."',sous_matiere='".$sous_mat."' WHERE id_controle='".$c."' LIMIT 1", $id_sql) ;
     $ok_moy = 0 ;
    }
   Else
    {
     // Doit-on mettre a jour les moyennes
     $res = SQL_commande ("SELECT ok FROM calcul_moyenne WHERE classe='".$sp ["classe"]."' AND periode='".$periode."' AND service_prof='".$sp ["id_service_prof"]."' AND service_classe='".$sp ["service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
     If (SQL_nbr_lignes ($res) > 0)
      {
       $ligne = SQL_ligne_suivante ($res) ;
       $ok_moy = $ligne [0] ;
      }
     Else { $ok_moy = 0 ; }
    }
   
   // Fin reelle de session !
   verif_droits ($droit_courant, $_SESSION ["code"]) ;
   
   // Appel carnet de notes
   $carnet = carnet_de_notes ($sp ["classe"],$sp ["discipline"],$id_service_prof,$periode,$millesime) ;
   
   Echo entete_page ("","") ;
   Echo "<html><head>" ;
   entete_html ("Garennes", "", 1) ;
   Echo styles ("none", "none", "none", $theme [0][32], "none") ;
   Include ("./saisie_notes.js") ;
   If (IsSet ($fen)) { Echo "<script type=\"text/javascript\">parent.".$fen.".document.close();</script>" ; }
   //Include ("../../include/fenetre_volante.js") ;
   Include ("../../include/opacite.js") ;
   Echo "<style type=\"text/css\">.pref{margin:0px;padding:0px;cursor:crosshair;}</style>" ;
   Echo "<script type=\"text/javascript\">" ;
   Echo "function pref(n,v){document.saisie.note_defaut.value=v;document.getElementById(nd_old).style.background='".$theme [10][1]."';document.getElementById(n).style.background='".$theme [10][2]."';nd_old=n;}" ;
   Echo "</script>" ;
   Echo "</head>" ;
   
   Echo "<body id=\"id_page\" onFocus=\"intensification_opacite();\" background=\"".$rep_themes."/".$param_theme ["nom_repertoire"]."/".$theme [9][10]."\" text=\"".$theme [0][4]."\" onContextMenu=\"return false\">" ;
   
   // Patience
   Echo faire_patienter ("<font color='#000000' face='Verdana' size='4'><b>Veuillez patienter, le carnet de notes est en cours de chargement...</b></font>", $theme [0][29], $theme [0][3]) ;
   // Fiche eleve
   /*
   Echo "<div id=\"1\" style=\"position:absolute;z-index:20;visibility:hidden;top:0px;left:0px\">" ;
   Echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#FFFFFF\" style=\"border:1px #000000 solid;border-collapse:collapse\">" ;
   Echo "<tr><td align=\"center\">Afficher&nbsp;la&nbsp;fiche&nbsp;&eacute;l&egrave;ve...<br><br><br></td></tr>" ;
   Echo "</table>" ;
   Echo "</div>" ;
   */
   Echo "<div style=\"position:absolute;left:0px;top:0px;visibility:visible;z-index:1\" id=\"saisie_notes\">" ;
   If ($droit_courant == $droit_prof)
    {
     Echo "<table border=\"0\" width=\"100%\"><tr><td align=\"center\">" ;
     If ($theme [2][1] == 0) { Echo "<font size=\"+1\">Saisie&nbsp;de&nbsp;notes&nbsp;:&nbsp;" ; } Else { $titre_fenetre = "Saisie&nbsp;de&nbsp;notes" ; }
     Echo "<font color=\"".$theme [0][38]."\">" ;
     If ($theme [0][39]) { Echo "<b>" ; }
     If ($theme [0][40]) { Echo "<i>" ; }
     $id_groupement_discipline_definition = groupement_service_prof ($sp ["id_service_prof"],$millesime,$id_sql) ;
     If ($id_groupement_discipline_definition > 0)
      {
       $noms_groupe = restaure_configuration ("SYSTEME_PARAM","AFFICHAGE","INTITULE_GROUPE_DISC_".$gestion ["id_etablissement"]) ;
       $nom_groupe = Explode ("|", $noms_groupe) ;
       $car_groupe = groupement_nom_groupe ($id_groupement_discipline_definition,$millesime,$id_sql) ;
       Echo $nom_groupe [1]."&nbsp;:&nbsp;".$car_groupe [1]."&nbsp;-&nbsp;Coefficient&nbsp;:&nbsp;".Str_Replace (".",",",$car_groupe [4])."<br>" ;
      }
     Echo nom_disc_long_parid ($sp ["discipline"]) ;
     If ($theme [0][40]) { Echo "</i>" ; }
     If ($theme [0][39]) { Echo "</b>" ; }
     Echo "</font></font></td></tr>" ;
     //Echo "<TD ALIGN=RIGHT><A HREF=\"javascript:ouvrefenetre('./aide.php?aide=1&rep="."../../include',350,650);\" OLDREF>" ;
     //Echo "<IMG SRC=\"../images/aide.png\" BORDER=0 TITLE=\"Aide...\"></A></TD>\n" ;
     $colplus = 0 ;
    }
   ElseIf (($droit_courant == $droit_direction) Or ($droit_courant == $droit_secretariat))
    {
     Echo "<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tr><td>&nbsp;</td>" ;
     Echo "<td align=\"center\">Modification/Saisie&nbsp;de&nbsp;notes&nbsp;:&nbsp;<font color=\"#0000FF\"><i>".nom_disc_long_parid ($sp ["discipline"])."</i></font></td>" ;
     Echo "<td align=\"right\"><a href=\"javascript:ouvrefenetre('./aide.php?aide=1&rep=".$_SESSION ["repertoire_config"]."',350,650);\" oldref><img src=\"../images/aide.png\" border=\"0\" title=\"Aide...\"></a></td>" ;
     Echo "</tr>" ;
     Echo "<tr><td colspan=\"3\" align=\"center\">&nbsp;Enseignant&nbsp;:&nbsp;" ;
     $res = SQL_commande ("SELECT * FROM utilisateurs WHERE id_utilisateur='".$professeur."' LIMIT 1", $id_sql) ;
     $ligne = SQL_tableau_associatif ($res, "") ;
     Echo "<font color=\"#0000FF\"><i>".$ligne ["nom"]."&nbsp;".$ligne ["prenom"]."</i></font>" ;
     Echo "&nbsp;</td></tr></table>" ;
     $titre_fenetre = "Modification/Saisie&nbsp;de&nbsp;notes." ;
     $colplus = 2 ;
    }
   Else { $colplus = 0 ; }
   
   // Choix de la periode
   If (($droit_courant == $droit_direction) Or ($droit_courant == $droit_secretariat))
    {
     Echo "<table border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\"><tr>" ;
     If (($periode_actuelle < 2) Or (($periode_actuelle == 2) And (valide_periode ($classe, periode_valide ($classe)))))
      {
       Echo "<td align=\"center\">&nbsp;<b>".$nom_periode."&nbsp;:&nbsp;".$periode."</b></td>" ;
      }
     Else
      {
       Echo "<td align=\"right\">&nbsp;<b>".StrToUpper (SubStr ($nom_periode, 0,1)).StrToLower (SubStr ($nom_periode, 1, StrLen ($nom_periode)-1))."&nbsp;&agrave;&nbsp;afficher&nbsp;:&nbsp;</b></td>" ;
       Echo "<form action=\"./saisie_notes.php\" name=\"change_periode\" method=\"post\" onSubmit=\"javascript:return valide_periode(0)\">" ;
       Echo "<input type=\"hidden\" name=\"id_service_prof\" value=\"".$id_service_prof."\">" ;
       Echo "<input type=\"hidden\" name=\"menu\" value=\"".$menu."\">" ;
       Echo "<input type=\"hidden\" name=\"code\" value=\"".$_SESSION ["code"]."\">" ;
       Echo "<td><select name=\"periode\" onChange=\"javascript:valide_periode(1)\">" ;
       For ($i = 1 ; $i <= $periode_actuelle ; $i++)
        {
         Echo "<option value=\"".$i."\"" ; If ($i == $periode) { Echo " selected" ; }
         Echo ">".$i."</option>" ;
        }
       Echo "</select></td><td><input type=\"image\" src=\"../images/valider.png\" name=\"submit\" value=\" Afficher \"></td></form>" ;
      }
     Echo "<td>&nbsp;</td></tr>" ;
    }

   If ($type_moyenne == MOYENNE_NORMALE)
    {
     Echo "<tr><td align=\"center\"" ; If (($droit_courant == $droit_direction) Or ($droit_courant == $droit_secretariat)) { Echo " colspan=\"3\"" ; }
     Echo ">Mode d'arrondi des moyennes : <b>".nom_arrondi ($format_arrondi)."</b>.</td></tr></table>" ;    
     $ok = SQL_commande ("UPDATE sessions SET max='".$note_par_defaut."' WHERE id_session='".$_SESSION ["code"]."' LIMIT 1", $id_sql) ;
    }
   ElseIf ($type_moyenne == MOYENNE_POURCENT)
    {
     Echo "<tr><td align=\"center\"" ; If (($droit_courant == $droit_direction) Or ($droit_courant == $droit_secretariat)) { Echo " colspan=\"3\"" ; }
     Echo ">Moyennes en pourcentage (Notes de 0 &agrave; 100).</td></tr></table>" ;
     $ok = SQL_commande ("UPDATE sessions SET max='100' WHERE id_session='".$_SESSION ["code"]."' LIMIT 1", $id_sql) ;
    }
   
   Echo "<TABLE BORDER=\"0\" ALIGN=\"CENTER\" CELLSPACING=\"0\" CELLPADDING=\"0\" STYLE=\"border-collapse:collapse\">" ;
   Echo "<TR><TD vALIGN=\"TOP\" ALIGN=\"MIDDLE\" WIDTH=\"50\"><BR><BR>" ;
   // Icones
   Echo "<A HREF=\"javascript:ouvrefenetre2('./trombinoscope.php?id_classe=".$sp ["classe"]."&code=".$_SESSION ["code"]."');\" style=\"display:block\">" ;
   Echo "<IMG SRC=\"".$rep_themes.$param_theme ["nom_repertoire"]."/".$theme [9][6]."\" BORDER=\"0\" TITLE=\"Afficher le trombinoscope de la classe.\"" ;
   //Echo " onmouseover=\"voir(event,'1',1,0,0,this);return true;\" onmouseout=\"cache('1');return true;\"" ;
   Echo "></A>" ;
   If ($carnet [0][0][0] > 0)
    {
     Echo "<BR><A HREF=\"javascript:ouvrefenetre2('./saisie_notes.php?impression=-".$id_service_prof."&code=".$_SESSION ["code"] ;
     If ($droit_courant != $droit_prof) { Echo "&periode=".$periode."&menu=".$menu ; }
     Echo "')\" style=\"display:block\">" ;
     Echo "<IMG SRC=\"".$rep_themes.$param_theme ["nom_repertoire"]."/".$theme [9][8]."\" BORDER=\"0\" TITLE=\"Impression carnet de notes.\"></A>" ;
    }
   If ($carnet [0][0][2] > 0)
    {
     Echo "<br><br><a href=\"javascript:ouvrefenetre2('./modif_impression.php?id_classe=".$id_classe."&discipline=".$sp ["discipline"]."&id_service_prof=".$id_service_prof."&code=".$_SESSION ["code"]."&periode=".$periode ;
     If ($droit_courant != $droit_prof) { Echo "&menu=".$menu ; }
     Echo "')\" style=\"display:block\">" ;
     Echo "<img src=\"".$rep_themes.$param_theme ["nom_repertoire"]."/".$theme [9][25]."\" border=\"0\" title=\"Modifier l'impression bulletins/relev&eacute;s.\"></a>" ;
    }
   If (((($type_discipline == 3) And (($droit_courant == $droit_direction) Or ($droit_courant == $droit_secretariat))) Or ($droit_courant == $droit_prof)) And (File_Exists ("./importation_notes.php")))
    {
     Echo "<br><br><a href=\"javascript:ouvrefenetre2('./importation_notes.php?id_classe=".$id_classe."&professeur=".$professeur."&discipline=".$sp ["discipline"]."&id_service_prof=".$id_service_prof."&code=".$_SESSION ["code"]."&periode=".$periode."&menu=".$menu."')\" style=\"display:block\">" ;
     Echo "<img src=\"".$rep_themes.$param_theme ["nom_repertoire"]."/".$theme [9][26]."\" border=\"0\" title=\"Insertion de notes provenant d'un fichier texte au format CSV.\"></a>" ;
    }
   Echo "</td>" ;
   
   Echo "<td>" ;

   /*
   * Affichage de la table de saisie
   */
   Include ("../include/debut_theme.inc") ;
   Echo "<table border=\"0\" bgcolor=\"#ffffff\" cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse\">" ;
   // Ajouter une colonne par controle saisi
   $num_eleve = 0 ;
   $moy_tri = $delta_tri = 0 ;
   $moy_el_min = $moy_el_max = "-" ;
   $moy_tri_eb = $delta_tri_eb = 0 ;
   $moy_el_min_eb = $moy_el_max_eb = "-" ;
   $ok_c = 0 ;

   // ENTETES
   $nombre_controles = $carnet [0][0][0] ;
   $ok_exam_blanc = 0 ;
   If ($carnet [0][0][0] > 0)
    {
     // Determine si il existe une note d'examen blanc parmi les controles
     $ok_exam_blanc = 0 ;
     $nbr_exam_blanc = 0 ;
     If ($ok_exam == 1)
      {
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         If ($carnet [0][$i][6] > 0) { $ok_exam_blanc = 1 ; $nbr_exam_blanc++ ; }
        }
      }
     // Affichage de l'entete
     Echo "<tr>" ;
     Echo "<td bgcolor=\"".$theme [0][9]."\" rowspan=\"".(2+$ok_exam+$colplus)."\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>" ;
     Echo "<td bgcolor=\"".$theme [0][9]."\" valign=\"bottom\" rowspan=\"".(2+$ok_exam+$colplus)."\">&nbsp;<font color=\"".$theme [0][10]."\">&Eacute;l&egrave;ve</font></td>" ;
     If ($type_discipline == 0)
      {
       Echo "<td bgcolor=\"".$theme [0][11]."\" align=\"right\" valign=\"bottom\">" ;
       Echo "<font size=\"-3\" color=\"".$theme [0][12]."\"><b>Date&nbsp;<br>Coeff.&nbsp;<br>Notes&nbsp;sur&nbsp;<br>Sous-mati&egrave;re&nbsp;</b></font></td>" ;
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         Echo "<td colspan=\"".(5+($type_moyenne == MOYENNE_POURCENT))."\" align=\"center\" valign=\"bottom\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\" title=\"" ;
         If ($carnet [0][$i][2]) { Echo $carnet [0][$i][2] ; } Else { Echo "Pas de description pour ce contr&ocirc;le." ; }
         Echo "\"><font size=\"-3\" color=\"#000000\"><b>&nbsp;".decode_date_2 ($carnet [0][$i][1])."&nbsp;<br>" ;
         Echo "&nbsp;".Str_Replace (".", ",", $carnet [0][$i][3])."&nbsp;<br>&nbsp;".Str_Replace (".", ",", $carnet [0][$i][7])."&nbsp;<br>" ;
         Echo "&nbsp;".SubStr ($carnet [0][$i][9], 0, 7)."</b></font></td>" ;
        }
      }
     ElseIf ($type_discipline == 3)
      {
       Echo "<td bgcolor=\"".$theme [0][11]."\" colspan=\"".((5+($type_moyenne == MOYENNE_POURCENT))*$nombre_controles+1)."\">&nbsp;</td>" ;
      } 
     If ($type_moyenne == MOYENNE_NORMALE)
      {
       // Colonne nouvelle note 
       Echo "<td bgcolor=\"".$theme [0][17]."\" rowspan=\"".(1+$ok_exam)."\" title=\"D&eacute;finition de la note par d&eacute;faut...\" align=\"center\" valign=\"top\">" ;
       Echo "&nbsp;<font color=\"".$theme [0][18]."\" size=\"-2\">Nouvelle&nbsp;note&nbsp;<br>" ;
       Echo "<div id=\"nd1\" class=\"pref\" onClick=\"javascript:pref('nd1','".$code_absent."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_absent."</b></font>&nbsp;=&nbsp;ABSENT&nbsp;</font></div>" ;
       Echo "<div id=\"nd2\" class=\"pref\" onClick=\"javascript:pref('nd2','".$code_dispense."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_dispense."</b></font>&nbsp;=&nbsp;DISPENS&Eacute;&nbsp;</font></div>" ;
       Echo "<div id=\"nd3\" class=\"pref\" onClick=\"javascript:pref('nd3','".$code_non_rendu."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_non_rendu."</b></font>&nbsp;=&nbsp;NON&nbsp;RENDU&nbsp;<br>ou&nbsp;NON&nbsp;NOT&Eacute;</font>&nbsp;</font></div>" ;
       Echo "<div id=\"nd4\" class=\"pref\" onClick=\"javascript:pref('nd4','".$code_aucune_note."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_aucune_note."</b></font>&nbsp;=&nbsp;AUCUNE&nbsp;NOTE&nbsp;</font>&nbsp;</font></div>" ;
       $note_defaut = restaure_configuration_defaut ("PROF_".$professeur."_".$id_service_prof,"SAISIE","NOTES_DEFAUT",$code_absent) ;
       If ($note_defaut == $code_absent) { $div_defaut = "nd1" ; } ElseIf ($note_defaut == $code_dispense) { $div_defaut = "nd2" ; } ElseIf ($note_defaut == $code_non_rendu) { $div_defaut = "nd3" ; } Else { $div_defaut = "nd4" ; }
       Echo "</td>" ;
       // Colonne moyenne periodique
       Echo "<td bgcolor=\"".$theme [0][19]."\" rowspan=\"".(2+$ok_exam+$colplus)."\" colspan=\"5\" title=\"Moyenne Partielle\" valign=\"bottom\" align=\"center\">&nbsp;<br>" ;
       Echo "<a href=\"./saisie_notes.php?id_classe=".$id_classe."&discipline=".$sp ["discipline"]."&id_service_prof=".$id_service_prof."&code=".$_SESSION ["code"]."&periode=".$periode ;
       If ($droit_courant != $droit_prof) { Echo "&menu=".$menu ; }
       Echo "&maj_moy=1\">&nbsp;<img src=\"../images/rafraichissement.png\" border=\"0\" title=\"Rafraichissement du calcul des moyennes.\" alt=\"Rafraichissement\">&nbsp;</a><br>" ;
       Echo "<font color=\"".$theme [0][20]."\" size=\"-3\">Moy.<br>p&eacute;rio-<br>dique<br>(&nbsp;/".$gestion ["max"]."&nbsp;)</font></td>" ;
       // Colonne sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         Echo "<td bgcolor=\"".$theme [0][19]."\" rowspan=\"".(1+$ok_exam)."\" colspan=\"".(5*$carnet [0][0][2])."\" title=\"Moyennes sous-mati&egrave;re\" valign=\"bottom\" align=\"center\"><h6>" ;
         Echo "<font color=\"".$theme [0][20]."\"> Moy. sous mati&egrave;re" ; If ($carnet [0][0][2] > 0) { Echo "s" ; }
         Echo "</font></h6></td>" ;
        }
       // Colonne moyenne examen blanc
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         Echo "<td bgcolor=\"".$theme [0][19]."\" rowspan=\"".(2+$ok_exam+$colplus)."\" colspan=\"5\" title=\"Moyenne Examen Blanc\" valign=\"bottom\" align=\"center\"><h6>" ;
         Echo "<font color=\"".$theme [0][20]."\">Moy.<br>examen<br>blanc<br>(&nbsp;/".$gestion ["max"]."&nbsp;)</font></h6></td>" ;
        }
      }
     Echo "</tr>" ;
     
     // Ajouter une colonne examen blanc par controle saisi si classe a examen
     If (($ok_exam == 1) And ($type_moyenne == MOYENNE_NORMALE))
      {
       Echo "<tr>" ;
       Echo "<td bgcolor=\"".$theme [0][13]."\" align=\"right\"><font size=\"-3\" color=\"".$theme [0][14]."\"><b>&Eacute;xamen&nbsp;Blanc</b></font>&nbsp;</td>" ;
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         Echo "<td colspan=\"5\" align=\"center\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\">" ;
	 Echo "<a href=\"javascript:ouvrefenetre('" ; If ($droit_courant == $droit_prof) { Echo "./saisie_parametres.php?" ; } Else { Echo "./saisie_notes.php?menu=300&" ; }
         Echo "action=3&c=".$carnet [0][$i][0]."&id_classe=".$id_classe."&professeur=".$professeur."&periode=".$periode ;
	 Echo "&id_service_prof=".$id_service_prof."&id_service_classe=".$sp ["service_classe"]."&code=".$_SESSION ["code"]."',160,350);\" title=\"" ;
	 If ($carnet [0][$i][6] == 0)
	  {
	   // Pas examen blanc
           Echo "N'est pas une colonne de notes d'un examen blanc." ;
	   If ($carnet [0][$i][8] > 0)
	    {
	     $smat = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$carnet [0][$i][8]."' LIMIT 1", $id_sql) ;
	     If (SQL_nbr_lignes ($smat) == 1)
	      {
	       $sous_mat = SQL_ligne_suivante ($smat) ;
	       Echo "&nbsp;Sous-mati&egrave;re&nbsp;:&nbsp;".$sous_mat [0] ;
              }
	    }
	   Echo "\"><font size=\"-3\"><b>&nbsp;Non&nbsp;</b></font>" ;
	  }
         Else
	  {
	   // Examen blanc
           Echo "Note d'examen blanc." ;
	   If ($carnet [0][$i][8] > 0)
	    {
	     $smat = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$carnet [0][$i][8]."' LIMIT 1", $id_sql) ;
	     If (SQL_nbr_lignes ($smat) == 1)
	      {
	       $sous_mat = SQL_ligne_suivante ($smat) ;
	       Echo "&nbsp;Sous-mati&egrave;re&nbsp;:&nbsp;".$sous_mat [0] ;
              }
	    }
           Echo "\"><font size=\"-3\"><b>&nbsp;".Str_Replace (".", ",", $carnet [0][$i][6])."&nbsp;</b></font>" ;
	  }
         Echo "</a></td>" ;
        }
       Echo "</tr>" ;
      }
  
     // Ajouter une action de modification/suppression par controle saisi
     Echo "<tr><td bgcolor=\"".$theme [0][15]."\" align=\"right\" valign=\"middle\"><font size=\"-3\" color=\"".$theme [0][16]."\"><b>Action</b></font>&nbsp;</td>" ;
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       Echo "<td colspan=\"".(5+($type_moyenne == MOYENNE_POURCENT))."\" align=\"center\" valign=\"middle\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\"><font size=\"-3\">" ;
       Echo "&nbsp;<a href=\"" ; If ($droit_courant == $droit_prof) { Echo "./edition_notes.php?" ; } Else { Echo "./saisie_notes.php?menu=400&" ; }
       Echo "c=".$carnet [0][$i][0]."&periode=".$periode."&id_service_prof=".$id_service_prof."&id_service_classe=".$sp ["service_classe"]."&code=".$_SESSION ["code"]."\"" ;
       Echo " title=\"Modification de la colonne\"><b>&nbsp;Modif.&nbsp;</b></a>&nbsp;<br>" ;
       
       Echo "&nbsp;<a href=\"javascript:ouvrefenetre('" ; If ($droit_courant == $droit_prof) { Echo "./efface_colonne.php?" ; } Else { Echo "./saisie_notes.php?menu=500&" ; }
       Echo "c=".$carnet [0][$i][0]."&periode=".$periode."&action=1&id_classe=".$sp ["classe"]."&discipline=".$sp ["discipline"] ;
       Echo "&id_service_prof=".$id_service_prof."&id_service_classe=".$sp ["service_classe"]."&code=".$_SESSION ["code"]."',250,550);\"" ;
       Echo " title=\"Suppression de la colonne\"><b>&nbsp;Supp.&nbsp;</b></a>&nbsp;" ;
       Echo "</font>" ;
       $activation = restaure_configuration_defaut ("PROF_".$professeur,"SYNTHESE","ACTIVATION",0) ;
       If ($activation == 1)
        {
         $repertoire = restaure_configuration_defaut ("PROF_".$professeur,"SYNTHESE","REP","sons1") ;
         $activation_titre = restaure_configuration ("PROF_".$professeur,"SYNTHESE","ACTIVATION_TITRE",1) ;
         $duree_titre = restaure_configuration ("PROF_".$professeur,"SYNTHESE","DUREE_TITRE",1000) ;
         $duree_note = restaure_configuration ("PROF_".$professeur,"SYNTHESE","DUREE_NOTE",800) ;
         $enchainement = restaure_configuration ("PROF_".$professeur,"SYNTHESE","ENCHAINEMENT",100) ;
         If (!IsSet ($_SERVER ["HTTPS"]) Or (IsSet ($_SERVER ["HTTPS"]) And ($_SERVER ["HTTPS"] != "on"))) { $proto = "http" ; }
         Else { $proto = "https" ; }
         $adresse_serveur = GetEnv ("SERVER_ADDR") ;
         $racine = Str_Replace ("//", "/", Str_Replace ("/professeurs/pages/menu_classe.php", "", $_SERVER ['PHP_SELF'])) ;
         If (SubStr ($racine, 0, 1) == "/") { $racine = SubStr ($racine, 1, StrLen ($racine)-1) ; }
         If (SubStr ($racine, StrLen ($racine), 1) == "/") { $racine = SubStr ($racine, 0, StrLen ($racine)-1) ; }
         Echo "<div><applet code=\"prononce.class\" width=\"33\" height=\"17\">" ;
         Echo "<param name=\"rep_son\" value=\"../../sons/".$repertoire."\">" ;
         Echo "<param name=\"rep_img\" value=\"../../images/sons\">" ;
         Echo "<param name=\"serveur\" value=\"".$proto."://".$adresse_serveur."/".$racine."/sons/".$repertoire."\">" ;
         Echo "<param name=\"durees\" value=\"durees.txt\">" ;
         Echo "<param name=\"pt\" value=\"".$duree_titre."\">" ;
         Echo "<param name=\"pn\" value=\"".$duree_note."\">" ;
         Echo "<param name=\"ec\" value=\"".$enchainement."\">" ;
         Echo "<param name=\"entete\" value=\"".$activation_titre."\">" ;
         $date_controle = Explode ("-", $date_c [$i]) ;
         Echo "<param name=\"jour\" value=\"".$date_controle [2]."\">" ;
         Echo "<param name=\"mois\" value=\"".$date_controle [1]."\">" ;
         Echo "<param name=\"annee\" value=\"".$date_controle [0]."\">" ;
         Echo "<param name=\"nbr\" value=\"".$carnet [0][0][1]."\">" ;
         For ($j = 1 ; $j <= $carnet [0][0][1] ; $j++)
          {
           If (($carnet_notes [$j][$i][3] != $code_absent) And ($carnet_notes [$j][$i][3] != $code_non_rendu) And ($carnet_notes [$j][$i][3] != $code_dispense) And ($carnet_notes [$j][$i][3] != $code_aucune_note))
            {
             Echo "<param name=\"n".$j."\" value=\"".Str_Replace (".",",",$carnet_notes [$j][$i][3])."\">" ;
            }
           Else { Echo "<param name=\"n".$j."\" value=\"=\">" ; }
          }
         Echo "</applet></div>" ;
        }
       Echo "</td>" ;
      }
     If ($type_moyenne == MOYENNE_NORMALE)
      {
       Echo "<td align=\"center\" bgcolor=\"".$theme [0][9]."\" valign=\"middle\"><font size=\"-3\">&nbsp;" ;
       Echo "<a href=\"javascript:ouvrefenetre('./saisie_" ; If ($droit_courant == $droit_prof) { Echo "parametres.php?" ; } Else { Echo "notes.php?menu=300&" ; }
       Echo "c=".$carnet [0][$i][0]."&periode=".$periode."&action=1&code=".$_SESSION ["code"]."&id_classe=".$sp ["classe"] ;
       Echo "&discipline=".$sp ["discipline"]."&id_service_prof=".$id_service_prof."',330,550);\" title=\"" ;
       Echo "Param&egrave;tres du nouveau contr&ocirc;le\">&nbsp;<b>Param&egrave;tres</b>&nbsp;</a>&nbsp;</font></td>" ;
       // Colonne sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         $imp_sm_1 = restaure_configuration ($id_service_prof, "IMP_SMAT_".$periode, 1) ;
         $imp_sm_2 = restaure_configuration ($id_service_prof, "IMP_SMAT_".$periode, 2) ;
         For ($j = 1 ; $j <= $carnet [0][0][2] ; $j++)
          {
           Echo "<td bgcolor=\"".$theme [0][19]."\" colspan=\"5\" " ; If (($droit_courant == $droit_direction) Or ($droit_courant == $droit_secretariat)) { Echo " rowspan=\"2\"" ; }
           Echo "title=\"Moyennes sous-mati&egrave;re\" valign=\"bottom\" align=\"center\"><font color=\"".$theme [0][20]."\" size=\"-3\">" ;
           If (StrLen ($carnet [0][0][11+($j-1)*2]) > 8) { Echo SubStr ($carnet [0][0][11+($j-1)*2], 0, 8)."." ; } Else { Echo $carnet [0][0][11+($j-1)*2] ; }
           Echo "<br>(&nbsp;/".$gestion ["max"]."&nbsp;)&nbsp;<img src=\"../images/sous_matiere.php?cf=".SubStr ($theme [0][19], 1, 6) ;
           If (($carnet [0][0][10+($j-1)*2] == $imp_sm_1) Or ($carnet [0][0][10+($j-1)*2] == $imp_sm_2)) { Echo "&ct=00ff00&dr=0&dv=5" ; } Else { Echo "&ct=ff0000&dr=5&dv=0" ; }
           Echo "\" alt=\"I\"></font></td>" ;
          }
        }
      }
     Echo "</tr>" ;
     // Ajouter un changement/copie de la colonne de cote sur une autre periode si droits corrects
     If (($droit_courant == $droit_direction) Or ($droit_courant == $droit_secretariat))
      {
       // Ajouter un changement de periode
       Echo "<tr>" ;
       Echo "<td bgcolor=\"".$theme [0][15]."\" align=\"right\"><font size=\"-3\" color=\"".$theme [0][16]."\"><b>" ;
       Echo "<a href=\"javascript:valide_change_periode(".$nombre_controles.")\">&nbsp;Chgt&nbsp;p&eacute;riode&nbsp;</a></b></font>&nbsp;</td>" ;
       Echo "<form action=\"change_periode.php\" method=\"post\" name=\"chgt_periode\">" ;
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         Echo "<td colspan=\"".(5+($type_moyenne == MOYENNE_POURCENT))."\" align=\"center\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\">" ;
         Echo "<input type=\"checkbox\" name=\"note_".($i-1)."\" value=\"".$carnet [0][$i][0]."\" title=\"Changement de p&eacute;riode de la note\">" ;
         Echo "</td>" ;
        }
       Echo "<input type=\"hidden\" name=\"type_action\" value=\"1\">" ;
       Echo "<input type=\"hidden\" name=\"action\" value=\"1\">" ;
       Echo "<input type=\"hidden\" name=\"periode\" value=\"".$periode."\">" ;
       Echo "<input type=\"hidden\" name=\"id_service_prof\" value=\"".$id_service_prof."\">" ;
       Echo "<input type=\"hidden\" name=\"id_professeur\" value=\"".$id_professeur."\">" ;
       Echo "<input type=\"hidden\" name=\"discipline\" value=\"".$discipline."\">" ;
       Echo "<input type=\"hidden\" name=\"id_service_classe\" value=\"".$sp ["service_classe"]."\">" ;
       Echo "<input type=\"hidden\" name=\"code\" value=\"".$_SESSION ["code"]."\">" ;
       Echo "<input type=\"hidden\" name=\"nombre\" value=\"".$nombre_controles."\">" ;
       Echo "</form><td align=\"center\" bgcolor=\"".$theme [0][9]."\"></td>" ;
       Echo "</tr>" ;
       // Ajouter une copie sur une autre periode
       Echo "<tr>" ;
       Echo "<td bgcolor=\"".$theme [0][15]."\" align=\"right\"><font size=\"-3\" color=\"".$theme [0][16]."\"><b>" ;
       Echo "<a href=\"javascript:valide_copie_periode(".$nombre_controles.")\">&nbsp;Copie&nbsp;colonne&nbsp;</a></b></font>&nbsp;</td>" ;
       Echo "<form action=\"change_periode.php\" method=\"post\" name=\"copie_periode\">" ;
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         Echo "<td colspan=\"".(5+($type_moyenne == MOYENNE_POURCENT))."\" align=\"center\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\">" ;
         Echo "<input type=\"checkbox\" name=\"note_".($i-1)."\" value=\"".$carnet [0][$i][0]."\" title=\"Changement de p&eacute;riode de la note\">" ;
         Echo "</td>" ;
        }
       Echo "<input type=\"hidden\" name=\"type_action\" value=\"2\">" ;
       Echo "<input type=\"hidden\" name=\"action\" value=\"1\">" ;
       Echo "<input type=\"hidden\" name=\"periode\" value=\"".$periode."\">" ;
       Echo "<input type=\"hidden\" name=\"id_service_prof\" value=\"".$id_service_prof."\">" ;
       Echo "<input type=\"hidden\" name=\"id_professeur\" value=\"".$id_professeur."\">" ;
       Echo "<input type=\"hidden\" name=\"discipline\" value=\"".$discipline."\">" ;
       Echo "<input type=\"hidden\" name=\"id_service_classe\" value=\"".$sp ["service_classe"]."\">" ;
       Echo "<input type=\"hidden\" name=\"code\" value=\"".$_SESSION ["code"]."\">" ;
       Echo "<input type=\"hidden\" name=\"nombre\" value=\"".$nombre_controles."\">" ;
       Echo "</form><td align=\"center\" bgcolor=\"".$theme [0][9]."\"></td>" ;
       Echo "</tr>" ;
      }
    }
   Else
    {
     // Aucun controle
     If ($type_moyenne == MOYENNE_NORMALE)
      {
       Echo "<tr><td bgcolor=\"".$theme [0][17]."\" align=\"center\" valign=\"middle\" colspan=\"4\"><font size=\"0\">&nbsp;<font color=\"".$theme [0][18]."\"><b>Premi&egrave;re&nbsp;note&nbsp;</b><td></tr>" ;
      }
     Else
      {
       Echo "<tr><td bgcolor=\"".$theme [0][17]."\" align=\"center\" valign=\"middle\" colspan=\"4\"><font size=\"0\">&nbsp;<font color=\"".$theme [0][18]."\"><b>Note&nbsp;unique&nbsp;en&nbsp;pourcentage.</b><td></tr>" ;
      }
     Echo "<tr>" ;
     Echo "<td bgcolor=\"".$theme [0][9]."\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>" ;
     Echo "<td bgcolor=\"".$theme [0][9]."\" valign=\"middle\" colspan=\"2\"><font color=\"".$theme [0][10]."\">&Eacute;l&egrave;ve</font></td>" ;
     Echo "<td bgcolor=\"".$theme [0][17]."\" title=\"Premier contr&ocirc;le\" align=\"center\" valign=\"middle\">" ;
     Echo "<div id=\"nd1\" class=\"pref\" onClick=\"javascript:pref('nd1','".$code_absent."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_absent."</b></font>&nbsp;=&nbsp;ABSENT&nbsp;</font></div>" ;
     Echo "<div id=\"nd2\" class=\"pref\" onClick=\"javascript:pref('nd2','".$code_dispense."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_dispense."</b></font>&nbsp;=&nbsp;DISPENS&Eacute;&nbsp;</font></div>" ;
     Echo "<div id=\"nd3\" class=\"pref\" onClick=\"javascript:pref('nd3','".$code_non_rendu."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_non_rendu."</b></font>&nbsp;=&nbsp;NON&nbsp;RENDU&nbsp;<br>ou&nbsp;NON&nbsp;NOT&Eacute;</font>&nbsp;</font></div>" ;
     Echo "<div id=\"nd4\" class=\"pref\" onClick=\"javascript:pref('nd4','".$code_aucune_note."');\">&nbsp;<font size=\"-2\"><font color=\"#ff0000\"><b>".$code_aucune_note."</b></font>&nbsp;=&nbsp;AUCUNE&nbsp;NOTE&nbsp;</font>&nbsp;</div>&nbsp;<br>" ;
     $note_defaut = restaure_configuration_defaut ("PROF_".$professeur."_".$id_service_prof,"SAISIE","NOTES_DEFAUT",$code_absent) ;
     If ($note_defaut == $code_absent) { $div_defaut = "nd1" ; } ElseIf ($note_defaut == $code_dispense) { $div_defaut = "nd2" ; } ElseIf ($note_defaut == $code_non_rendu) { $div_defaut = "nd3" ; } Else { $div_defaut = "nd4" ; }
     Echo "<font size=\"-3\">&nbsp;<a href=\"javascript:ouvrefenetre('" ; If ($droit_courant == $droit_prof) { Echo "./saisie_parametres.php?" ; } Else { Echo "./saisie_notes.php?menu=300&" ; }
     Echo "c=".$carnet [0][$i][0]."&periode=".$periode."&action=1&code=".$_SESSION ["code"]."&id_classe=".$sp ["classe"] ;
     Echo "&discipline=".$sp ["discipline"]."&id_service_prof=".$id_service_prof."',330,550);\" title=\"" ;
     Echo "Param&egrave;tres du nouveau contr&ocirc;le\">&nbsp;<b>Param&egrave;tres</b>&nbsp;</a>&nbsp;</font></td>" ;
     Echo "</tr>" ;
    }
     
   // Premier trait de separation
   Echo "<tr bgcolor=\"".$theme [0][5]."\"><td colspan=\"".(($carnet [0][0][0]+$ok_exam_blanc+($carnet [0][0][2]>0)*$carnet [0][0][2]+1+$colplus)*5+4)."\" height=\"1\"></td></tr>" ;
   
   Echo "<form action=\"./saisie_notes.php\" name=\"saisie\" method=\"post\" onsubmit=\"return pasEntree(event)\">" ;
   
   // Colonnes ELEVES
   $table_moy [0][0] = 0 ; // Tableau d'enregistrement des notes et moyennes
   $num_c = 1 ;
   $optionnelle = estoptionnelle ($sp ["discipline"], $sp ["classe"], $sp ["service_classe"]) ;
   $surbrillance = restaure_configuration_defaut ("PROF_".$professeur, "SAISIE", "SURBRILLANCE",0) ;
   $nombre_notes = 0 ;
   For ($j = 1 ; $j <= $carnet [0][0][1] ; $j++)
    {
     $indice = $carnet [$j][0][0] ;
     $num_c++ ;
     $couleur_nouv = $theme [10][$num_c%$theme [10][0]+1] ;
     For ($k = 1 ; $k <= $carnet [0][0][2] ; $k++)
      {
       $car_sm [$num_eleve][0][$carnet [0][0][10+($k-1)*2]] = 0 ; // Somme
       $car_sm [$num_eleve][1][$carnet [0][0][10+($k-1)*2]] = 0 ; // Somme coefficients
      }
     
     // Icone d'acces a la fiche eleve
     Echo "<tr bgcolor=\"".$couleur_nouv."\"" ;
     If (IsSet ($surbrillance) And ($surbrillance == 1))
      {
       Echo " name=\"l".$j."\" onmouseover=\"javascript:document.getElementsByName('l".$j."')[0].bgColor='".$theme [0][27]."'\" " ;
       Echo "onmouseout=\"javascript:document.getElementsByName('l".$j."')[0].bgColor='".$couleur_nouv."'\"" ;
      }
     Echo ">" ;// width=\"".(30*(1+($droit_courant == $droit_prof))+18)."\"
     Echo "<td><a href=\"javascript:ouvrefenetre('./fiche_eleve.php?id_eleve=".$carnet [$j][0][0]."&code=".$_SESSION ["code"]."',480,570);\">" ;
     Echo "<img src=\"".$rep_themes.$param_theme ["nom_repertoire"]."/".$theme [9][5]."\" border=\"0\"" ;
     //Echo " onmouseover=\"voir(event,'1');return true;\" onmouseout=\"cache('1');return true;\"" ;
     Echo " title=\"Afficher&nbsp;la&nbsp;fiche&nbsp;&eacute;l&egrave;ve...\" alt=\"F\">" ;
     Echo "</a>" ;
     // Icone memo notes
     If ($droit_courant == $droit_prof)
      {
       Echo "<a href=\"javascript:ouvrefenetre('./memo_notes.php?id_utilisateur=".$professeur."&id_eleve=".$carnet [$j][0][0]."&retour=saisie_notes.php&id_service_prof=".$id_service_prof ;
       Echo "',".$hauteur_memo_popup.",".$largeur_memo_popup.")\" title=\"Cr&eacute;er/Modifier la m&eacute;mo note...\" border=\"0\">" ;
       Echo "<img src=\"".$rep_themes.$param_theme ["nom_repertoire"]."/" ;
       If (memo_note_existe ($professeur, $lin_el [2], $lin_el [3+$r], $lin_el [4+$r]) == 1) { Echo $theme [9][20] ; } Else { Echo $theme [9][21] ; }
       Echo "\" name=\"note_".$carnet [$j][0][0]."\" border=\"0\" alt=\"M\"></a>" ;
      }
     Echo "</td>" ;
     // Colonne eleve
     Echo "<td colspan=\"2\">&nbsp;<font size=\"".$theme [0][28]."\">" ;
     $nom_eleve = Str_Replace (" ", "&nbsp;", $carnet [$j][0][1]) ;
     Echo $nom_eleve."</font>&nbsp;" ;
     If (StrPos ($carnet [$j][0][2], " ")) { $prenom = SubStr ($carnet [$j][0][2], 0, StrPos ($carnet [$j][0][2], " ")) ; } Else { $prenom = $carnet [$j][0][2] ; }
     $prenom = StrToUpper (SubStr ($prenom, 0, 1)).StrToLower (SubStr ($prenom, 1, StrLen ($prenom)-1)) ;
     Echo "<font size=\"-5\"><i>".$prenom."</i>&nbsp;&nbsp;</font></td>" ;
     
     // Mise a zero du compteurs de colonne moyenne partielle pour un eleve
     $moyenne = $delta = 0 ;
     $moy_exam_blanc = $delta_exam_blanc = 0 ;
     If ($carnet [0][0][0] > 0)
      {
       // Colonnes des controles deja saisis
       For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
        {
         If ((($i-1)%$theme [11][0] == 0) And ($num_c%$theme [10][0] == 0)) { $couleur = $theme [11][($i-1)%$theme [11][0]+1] ; }
         Else { $couleur = $theme [10][$num_c%$theme [10][0]+1] ; }
         
         If (Empty ($carnet [$j][$i][2])) { Echo affiche_note ($couleur, "Aucun commentaire.", $theme [0][28], $carnet [$j][$i][1], 0, "", $coul_notes, $carnet [0][$i][7]) ; }
         Else { Echo affiche_note ($couleur, $carnet [$j][$i][2], $theme [0][28], $carnet [$j][$i][1], 0, "", $coul_notes, $carnet [0][$i][7]) ; }
	 
         If ($type_moyenne == MOYENNE_POURCENT) { Echo "<td bgcolor=\"".$couleur."\">%</td>" ; }
         
         If (($type_moyenne == MOYENNE_NORMALE) And ($carnet [$j][$i][1] != $code_absent) And ($carnet [$j][$i][1] != $code_non_rendu) And ($carnet [$j][$i][1] != $code_dispense) And ($carnet [$j][$i][1] != $code_aucune_note))
          {
           // Moyenne normale
           $moyenne += ($carnet [$j][$i][1]*$gestion ["max"]/$carnet [0][$i][7])*$carnet [0][$i][3] ;
           $delta += $carnet [0][$i][3] ;
           // Moyenne sous-matieres
           If ($carnet [0][0][2] > 0)
            {
             For ($k = 1 ; $k <= $carnet [0][0][2] ; $k++)
              {
               If ($carnet [0][$i][8] == $carnet [0][0][10+($k-1)*2])
                {
                 $car_sm [$num_eleve][0][$carnet [0][0][10+($k-1)*2]] += ($carnet [$j][$i][1]*$gestion ["max"]/$carnet [0][$i][7])*$carnet [0][$i][3] ;
                 $car_sm [$num_eleve][1][$carnet [0][0][10+($k-1)*2]] += $carnet [0][$i][3] ;
                }
              }
            }
           // Moyenne exam
	   If (($ok_exam == 1) And ($carnet [0][$i][6] > 0))
	    {
	     $moy_exam_blanc += ($carnet [$j][$i][1]*$gestion ["max"]/$carnet [0][$i][7])*$carnet [0][$i][6] ;
             $delta_exam_blanc += $carnet [0][$i][6] ;
	    }
          }
        }
      }
     
     If (($type_moyenne == MOYENNE_NORMALE) Or ($nombre_controles == 0))
      {
       // Colonne vide : nom du champ = n[numero de l'eleve']["n"]
       Echo "<td align=\"center\" bgcolor=\"".$couleur_nouv."\">" ;
       Echo "<font size=\"".$theme [0][28]."\"><input type=\"text\" name=\"note".$j."\" size=\"7\" maxlength=\"5\" onkeydown=\"return tabOnEnter(this,event);\" onFocus=\"this.select();\"" ;
       If ($type_moyenne == MOYENNE_POURCENT) { Echo " value=\"0\"" ; }
       Echo "></font><input type=\"hidden\" name=\"el".$j."\" value=\"".$carnet [$j][0][0]."\">" ;
       If ($type_moyenne == MOYENNE_POURCENT) { Echo "%" ; }
       Echo "</td>" ;
      }
     If ($type_moyenne == MOYENNE_NORMALE)
      {
       // Colonne moyenne partielle
       If (($delta > 0) And ($carnet [0][0][0] > 0))
        {
	 $moy = arrondi_note ($moyenne/$delta, $format_arrondi) ;
	 $table_moy = creation_table_moyenne ($table_moy,$indice,0,$sp ["service_classe"],$id_service_prof,$periode,$moy,NOTE_MOY_ELEVE_DISC,$millesime) ;
	 If ($moy_el_min == "-") { $moy_el_min = $moy_el_max = $moy ; $ok_c = 1 ; }
	 Else
	  {
           If ($moy < $moy_el_min) { $moy_el_min = $moy ; $ok_c = 1 ; }
           If ($moy > $moy_el_max) { $moy_el_max = $moy ; $ok_c = 1 ; }
	  }
         $nom = "Moyenne p&eacute;riodique pour ".$nom_eleve ;
         If ($moy < Ceil ($gestion ["max"]/2))
          {
  	   If ($moy < 10) { Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], $nom, $theme [0][28], "0".arrondi_note ($moy, $format_arrondi), 1, "#ff0000", $coul_notes, $gestion ["max"]) ; }
	   Else { Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], $nom, $theme [0][28], arrondi_note ($moy, $format_arrondi), 1, "#ff0000", $coul_notes, $gestion ["max"]) ; }
          }
         Else
          { Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], $nom, $theme [0][28], arrondi_note ($moy, $format_arrondi), 0, "", $coul_notes, $gestion ["max"]) ; }
         $moy_tri += $moyenne/$delta ;
         $delta_tri++ ;
        }
       Else
        {
         If ($carnet [0][0][0] > 0) { Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], "Aucune moyenne.", $theme [0][28], "---", 0, "", $coul_notes, $gestion ["max"]) ; }
        }

       // Colonne moyennes sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($i = 1 ; $i <= $carnet [0][0][2] ; $i++)
          {
           $c1 = $car_sm [$num_eleve][0][$carnet [0][0][10+($i-1)*2]] ;
           $c2 = $car_sm [$num_eleve][1][$carnet [0][0][10+($i-1)*2]] ;
           If ($c2 > 0)
            {
             Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], "Moyenne sous-mati&egrave;re.", $theme [0][28], arrondi_note ($c1/$c2, $format_arrondi), 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$indice,$carnet [0][0][10+($i-1)*2],$sp ["service_classe"],$id_service_prof,$periode,($c1/$c2),NOTE_MOY_ELEVE_SMAT,$millesime) ;
            }
           Else
            {
             Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], "Moyenne sous-mati&egrave;re.", $theme [0][28], "--", 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$indice,$carnet [0][0][10+($i-1)*2],$sp ["service_classe"],$id_service_prof,$periode,0,NOTE_MOY_ELEVE_SMAT,$millesime) ;
            }
          }
        }
       // Colonne moyenne examen blanc si existe
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         If (($delta_exam_blanc > 0) And ($nbr_exam_blanc > 0))
          {
	   $table_moy = creation_table_moyenne ($table_moy,$indice,0,$sp ["service_classe"],$id_service_prof,$periode,($moy_exam_blanc/$delta_exam_blanc),NOTE_MOY_ELEVE_EXAM,$millesime) ;
           $moy_eb = arrondi_note ($moy_exam_blanc/$delta_exam_blanc, $format_arrondi) ;
	   If ($moy_el_min_eb == "-") { $moy_el_min_eb = $moy_el_max_eb = $moy_eb ; $ok_c_eb = 1 ; }
	   Else
	    {
             If ($moy_eb < $moy_el_min_eb) { $moy_el_min_eb = $moy_eb ; $ok_c_eb = 1 ; }
             If ($moy_eb > $moy_el_max_eb) { $moy_el_max_eb = $moy_eb ; $ok_c_eb = 1 ; }
	    }
	   If ($delta_exam_blanc > 1) { $plus = "s" ; } Else { $plus = "" ; }
           $nom = "Moyenne examen".$plus." blanc".$plus." pour ".$nom_eleve ;
           If ($moy_eb < Ceil ($gestion ["max"]/2)) { Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], $nom, $theme [0][28], $moy_eb, 1, "#FF0000", $coul_notes, $gestion ["max"]) ; }
           Else { Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], $nom, $theme [0][28], $moy_eb, 0, "", $coul_notes, $gestion ["max"]) ; }
           $moy_tri_eb += $moy_exam_blanc/$delta_exam_blanc ;
           $delta_tri_eb++ ;
          }
         Else
          {
           If ($nbr_exam_blanc > 0)
	    {
	     Echo affiche_note ($theme [10][$num_c % $theme [10][0]+1], "Aucune moyenne d'examen blanc.", $theme [0][28], "---", 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$indice,0,$sp ["service_classe"],$id_service_prof,$periode,0,NOTE_MOY_ELEVE_EXAM,$millesime) ;
	    }
          }
        }
      }
     Echo "</TR>" ;
     $num_eleve++ ;
    }
   
   If (($type_moyenne == MOYENNE_NORMALE) Or ($carnet [0][0][0] == 0))
    {
     // Ligne validation
     Echo "<tr bgcolor=\"".$theme [0][3]."\">" ;
     Echo "<td colspan=\"".($nombre_controles*5+3)."\"></td>" ;
     Echo "<td align=\"center\">" ;
     Echo "<script>document.saisie.elements[0].focus();</script>" ;
     Echo "<input type=\"hidden\" name=\"code\" value=\"".$_SESSION ["code"]."\">" ;
     If ($droit_courant != $droit_prof) { Echo "<input type=\"hidden\" name=\"menu\" value=\"200\">" ; } Else { Echo "<input type=\"hidden\" name=\"menu\" value=\"".$menu."\">" ; }
     Echo "<input type=\"hidden\" name=\"periode\" value=\"".$periode."\">" ;
     Echo "<input type=\"hidden\" name=\"id_classe\" value=\"".$sp ["classe"]."\">" ;
     Echo "<input type=\"hidden\" name=\"discipline\" value=\"".$sp ["discipline"]."\">" ;
     Echo "<input type=\"hidden\" name=\"id_service_prof\" value=\"".$id_service_prof."\">" ;
     Echo "<input type=\"hidden\" name=\"nombre_notes\" value=\"".$carnet [0][0][1]."\">" ;
     Echo "<input type=\"hidden\" name=\"saisie\" value=\"1\">" ;
     Echo "<a href=\"javascript:valider()\"><img src=\"".$rep_themes.$param_theme ["nom_repertoire"]."/".$theme [9][0]."\" border=\"0\" title=\"Valider la colonne de notes.\" alt=\"Valider\"></a>" ;
     Echo "</td>" ;
     If ($nombre_controles > 0) { Echo "<td colspan=\"".(5*(1+$ok_exam_blanc+$carnet [0][0][2]))."\"></td>" ; }
     Echo "</tr>" ;
    }

   // =============================================================================================
   // =========== LIGNES D'ETATS : MOYENNE/MINIMUM/MAXIMUM ========================================
   If ($carnet [0][0][0] > 0)
    {
     // Deuxieme trait de separation
     Echo "<tr bgcolor=\"".$theme [0][6]."\"><td colspan=\"".(($nombre_controles+$ok_exam_blanc+($carnet [0][0][2]>0)*$carnet [0][0][2]+1)*5+4)."\" height=\"1\"></td></tr>" ;
     
     // Ligne moyenne
     Echo "<tr><td bgcolor=\"".$theme [0][21]."\" colspan=\"3\" align=\"right\">&nbsp;<font color=\"".$theme [0][22]."\">Moyenne&nbsp;Classe</font>&nbsp;&nbsp;</td>" ;
     UnSet ($ok) ;
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       $moy = 0 ;
       $delta = 0 ;
       $min [$i] = $max [$i] = "-" ;
       $ok [$i] = 0 ;
       For ($j = 1 ; $j <= $carnet [0][0][1] ; $j++)
        {
         If (($carnet [$j][$i][1] != $code_absent) And ($carnet [$j][$i][1] != $code_non_rendu) And ($carnet [$j][$i][1] != $code_dispense) And ($carnet [$j][$i][1] != $code_aucune_note))
          {
           $moy += $carnet [$j][$i][1] ;
           $delta++ ;
	   If ($min [$i] == "-") { $min [$i] = $max [$i] = $carnet [$j][$i][1] ; $ok [$i] =  1 ; }
	   Else
	    {
             If ($carnet [$j][$i][1] < $min [$i]) { $min [$i] = $carnet [$j][$i][1] ; $ok [$i] = 1 ; }
             If ($carnet [$j][$i][1] > $max [$i]) { $max [$i] = $carnet [$j][$i][1] ; $ok [$i] = 1 ; }
	    }
          }
        }
       If ($delta > 0)
        {
         Echo affiche_note ($theme [11][($i-1)%$theme [11][0]+1], "Moyenne : ".$carnet [0][$i][2], $theme [0][28], arrondi_note ($moy/$delta, $format_arrondi), 0, "", $coul_notes, $carnet [0][$i][7]) ;
	 If ($type_moyenne == MOYENNE_POURCENT) { Echo "<td bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\">%</td>" ; }
	 $table_moy = creation_table_moyenne ($table_moy,$id_classe,$carnet [0][$i][0],$sp ["service_classe"],$id_service_prof,$periode,($moy/$delta),NOTE_MOY_CLASSE_CONTROLE,$millesime) ;
        }
       Else
        { Echo "<td colspan=\"".(5+($type_moyenne == MOYENNE_POURCENT))."\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\"></td>" ; }
      }
     If ($type_moyenne == MOYENNE_NORMALE)
      {
       Echo "<td bgcolor=\"".$theme [0][9]."\">&nbsp;</td>" ;
       If (($moy_tri > 0) And ($delta_tri > 0))
        {
         Echo affiche_note ($theme [0][3], "Moyenne p&eacute;riodique de la classe.", $theme [0][28], arrondi_note ($moy_tri/$delta_tri, $format_arrondi), 0, "", $coul_notes, $gestion ["max"]) ;
	 $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,($moy_tri/$delta_tri),NOTE_MOY_CLASSE_DISC,$millesime) ;
        }
       Else
        {
         Echo affiche_note ($theme [0][3], "Moyenne p&eacute;riodique de la classe.", $theme [0][28], "", 0, "", $coul_notes, $gestion ["max"]) ;
	 $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,0,NOTE_MOY_CLASSE_DISC,$millesime) ;
        }
       // Colonne moyennes sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($i = 1 ; $i <= $carnet [0][0][2] ; $i++)
          {
           $c1 = $c2 = 0 ;
           For ($j = 0 ; $j < $carnet [0][0][1] ; $j++)
            {
             If ($car_sm [$j][1][$carnet [0][0][10+($i-1)*2]] > 0)
              {
               $c1 += ($car_sm [$j][0][$carnet [0][0][10+($i-1)*2]]/$car_sm [$j][1][$carnet [0][0][10+($i-1)*2]]) ;
               $c2++ ;
              }
            }
	   If ($c2 > 0)
	    {
             Echo affiche_note ($theme [0][3], "Moyenne sous-mati&egrave;res de la classe.", $theme [0][28], arrondi_note ($c1/$c2, $format_arrondi), 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$id_classe,$carnet [0][0][10+($i-1)*2],$sp ["service_classe"],$id_service_prof,$periode,($c1/$c2),NOTE_MOY_CLASSE_SMAT,$millesime) ;
	    }
          }
        }
       // Colonne moyenne classe examen blanc si existe
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         If (($moy_tri_eb > 0) And ($delta_tri_eb > 0))
          {
           Echo affiche_note ($theme [0][3], "Moyenne p&eacute;riodique examen blanc de la classe.", $theme [0][28], arrondi_note ($moy_tri_eb/$delta_tri_eb, $format_arrondi), 0, "", $coul_notes, $gestion ["max"]) ;
	   $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,($moy_tri_eb/$delta_tri_eb),NOTE_MOY_CLASSE_DISC_EXAM,$millesime) ;
          }
         Else
          {
           Echo affiche_note ($theme [0][3], "Moyenne p&eacute;riodique examen blanc de la classe.", $theme [0][28], "", 0, "", $coul_notes, $gestion ["max"]) ;
	   $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,0,NOTE_MOY_CLASSE_DISC_EXAM,$millesime) ;
          }
        }
      }
     Echo "</tr>" ;
   
     // Troisieme trait de separation
     Echo "<tr bgcolor=\"".$theme [0][7]."\"><td colspan=\"".(($nombre_controles+$ok_exam_blanc+($carnet [0][0][2]>0)*$carnet [0][0][2]+1)*5+4)."\" height=\"1\"></td></tr>" ;
     
     // Affichage de la ligne minimum
     Echo "<tr>" ;
     Echo "<td bgcolor=\"".$theme [0][23]."\" colspan=\"3\" align=\"right\">&nbsp;<font color=\"".$theme [0][24]."\">Note&nbsp;Minimum</font>&nbsp;&nbsp;</td>" ;
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       If ($ok [$i] == 1)
        {
	 Echo affiche_note ($theme [11][($i-1)%$theme [11][0]+1], "Note Minimum : ".$carnet [0][$i][2], $theme [0][28], $min [$i], 0, "", $coul_notes, $carnet [0][$i][7]) ;
	 If ($type_moyenne == MOYENNE_POURCENT) { Echo "<td bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\">%</td>" ; }
	 $table_moy = creation_table_moyenne ($table_moy,$id_classe,$carnet [0][$i][0],$sp ["service_classe"],$id_service_prof,$periode,$min [$i],NOTE_MIN_CLASSE_CONTROLE,$millesime) ;
	}
       Else { Echo "<td colspan=\"".(5+($type_moyenne == MOYENNE_POURCENT))."\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\"></td>" ; }
      }
     If ($type_moyenne == MOYENNE_NORMALE)
      {
       Echo "<td bgcolor=\"".$theme [0][9]."\">&nbsp;</td>" ;
       If ($ok_c)
        {
         Echo affiche_note ($theme [0][3], "Moyenne Minimum de la classe.", $theme [0][28], $moy_el_min, 0, "", $coul_notes, $gestion ["max"]) ;
	 $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,$moy_el_min,NOTE_MIN_CLASSE_DISC,$millesime) ;
        }
       Else { Echo "<td colspan=\"5\" bgcolor=\"".$theme [0][3]."\" width=\"1\"></td>" ; }
       
       // Colonne minimum sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($i = 1 ; $i <= $carnet [0][0][2] ; $i++)
          {
           $c1 = $car_sm [0][0][$carnet [0][0][10+($i-1)*2]] ;
           $c2 = $car_sm [0][1][$carnet [0][0][10+($i-1)*2]] ;
           If ($c2 > 0) { $c0 = $c1/$c2 ; } Else { $c0 = $maxi_min ; }
           For ($j = 1 ; $j < $carnet [0][0][1] ; $j++)
            {
             $c1 = $car_sm [$j][0][$carnet [0][0][10+($i-1)*2]] ;
             $c2 = $car_sm [$j][1][$carnet [0][0][10+($i-1)*2]] ;
             If ($c2 > 0) { If ($c1/$c2 < $c0) { $c0 = $c1/$c2 ; } }
            }
           If ($c0 != $maxi_min)
            {
             Echo affiche_note ($theme [0][3], "Minimum sous-mati&egrave;res de la classe.", $theme [0][28], arrondi_note ($c0, $format_arrondi), 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$id_classe,$carnet [0][0][10+($i-1)*2],$sp ["service_classe"],$id_service_prof,$periode,$c0,NOTE_MIN_CLASSE_SMAT,$millesime) ;
            }
           Else
	    {
	     Echo affiche_note ($theme [0][3], "Minimum sous-mati&egrave;res de la classe.", $theme [0][28], "--", 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$id_classe,$carnet [0][0][10+($i-1)*2],$sp ["service_classe"],$id_service_prof,$periode,0,NOTE_MIN_CLASSE_SMAT,$millesime) ;
	    }
          }
        }
       
       // Colonne moyenne minimum examen blanc si existe
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         If ($ok_c_eb)
          {
	   Echo affiche_note ($theme [0][3], "Moyenne Minimum examen blanc de la classe.", $theme [0][28], $moy_el_min_eb, 0, "", $coul_notes, $gestion ["max"]) ;
	   $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,$moy_el_min_eb,NOTE_MIN_CLASSE_DISC_EXAM,$millesime) ;
	  }
         Else { Echo "<td colspan=\"5\" bgcolor=\"".$theme [0][3]."\" width=\"1\"></td>" ; }
        }
      }
     Echo "</tr>" ;
     
     // Quatrieme trait de separation
     Echo "<tr bgcolor=\"".$theme [0][8]."\"><td colspan=\"".(($nombre_controles+$ok_exam_blanc+($carnet [0][0][2]>0)*$carnet [0][0][2]+1)*5+4)."\" height=\"1\"></td></tr>" ;
     
     // Affichage de la ligne maximum
     Echo "<tr>" ;
     Echo "<td bgcolor=\"".$theme [0][25]."\" colspan=\"3\" align=\"right\">&nbsp;<font color=\"".$theme [0][26]."\">Note&nbsp;Maximum</font>&nbsp;&nbsp;</td>" ;
     For ($i = 1 ; $i <= $carnet [0][0][0] ; $i++)
      {
       If ($ok [$i] == 1)
        {
	 Echo affiche_note ($theme [11][($i-1)%$theme [11][0]+1], "Note Maximum : ".$carnet [0][$i][2], $theme [0][28], $max [$i], 0, "", $coul_notes, $carnet [0][$i][7]) ;
	 If ($type_moyenne == MOYENNE_POURCENT) { Echo "<td bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\">%</td>" ; }
	 $table_moy = creation_table_moyenne ($table_moy,0,$carnet [0][$i][0],$sp ["service_classe"],$id_service_prof,$periode,$max [$i],NOTE_MAX_CLASSE_CONTROLE,$millesime) ;
	}
       Else { Echo "<td colspan=\"".(5+($type_moyenne == MOYENNE_POURCENT))."\" bgcolor=\"".$theme [11][($i-1)%$theme [11][0]+1]."\"></td>" ; }
      }
     If ($type_moyenne == MOYENNE_NORMALE)
      {
       Echo "<td bgcolor=\"".$theme [0][9]."\">&nbsp;</td>" ;
       If ($ok_c)
        {
         Echo affiche_note ($theme [0][3], "Moyenne Maximum de la classe.", $theme [0][28], $moy_el_max, 0, "", $coul_notes, $gestion ["max"]) ;
	 $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,$moy_el_max,NOTE_MAX_CLASSE_DISC,$millesime) ;
        }
       Else { Echo "<td colspan=\"5\" bgcolor=\"".$theme [0][3]."\" width=\"1\"></td>" ; }
       
       // Colonne maximum sous-matieres si existe
       If ($carnet [0][0][2] > 0)
        {
         For ($i = 1 ; $i <= $carnet [0][0][2] ; $i++)
          {
           $c1 = $car_sm [0][0][$carnet [0][0][10+($i-1)*2]] ;
           $c2 = $car_sm [0][1][$carnet [0][0][10+($i-1)*2]] ;
           If ($c2 > 0) { $c0 = $c1/$c2 ; } Else { $c0 = $mini_max ; }
           For ($j = 1 ; $j < $carnet [0][0][1] ; $j++)
            {
             $c1 = $car_sm [$j][0][$carnet [0][0][10+($i-1)*2]] ;
             $c2 = $car_sm [$j][1][$carnet [0][0][10+($i-1)*2]] ;
             If ($c2 > 0) { If ($c1/$c2 > $c0) { $c0 = $c1/$c2 ; } }
            }
           If ($c0 != $mini_max)
            {
             Echo affiche_note ($theme [0][3], "Maximum sous-mati&egrave;res de la classe.", $theme [0][28], arrondi_note ($c0, $format_arrondi), 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$id_classe,$carnet [0][0][10+($i-1)*2],$sp ["service_classe"],$id_service_prof,$periode,$c0,NOTE_MAX_CLASSE_SMAT,$millesime) ;
            }
           Else
	    {
	     Echo affiche_note ($theme [0][3], "Minimum sous-mati&egrave;res de la classe.", $theme [0][28], "--", 0, "", $coul_notes, $gestion ["max"]) ;
	     $table_moy = creation_table_moyenne ($table_moy,$id_classe,$carnet [0][0][10+($i-1)*2],$sp ["service_classe"],$id_service_prof,$periode,0,NOTE_MAX_CLASSE_SMAT,$millesime) ;
	    }
          }
        }
     
       // Colonne moyenne maximum examen blanc si existe
       If (($ok_exam == 1) And ($ok_exam_blanc == 1))
        {
         If ($ok_c_eb)
          {
	   Echo affiche_note ($theme [0][3], "Moyenne Maximum examen blanc de la classe.", $theme [0][28], $moy_el_max_eb, 0, "", $coul_notes, $gestion ["max"]) ;
	   $table_moy = creation_table_moyenne ($table_moy,$id_classe,0,$sp ["service_classe"],$id_service_prof,$periode,$moy_el_max_eb,NOTE_MAX_CLASSE_DISC_EXAM,$millesime) ;
	  }
         Else { Echo "<td colspan=\"5\" bgcolor=\"".$theme [0][3]."\" width=\"1\"></td>" ; }
        }
      }
     Echo "</tr>" ;
    }
   Echo "</table>" ;
   
   Include ("../include/fin_theme.inc") ;
   Echo "</tr></table>" ;
   
   sauvegarde_table_moyenne ($table_moy,$id_classe,$sp ["service_classe"],$id_service_prof,$periode,$millesime) ;
   
   Echo "<input type=\"hidden\" name=\"note_defaut\" value=\"".$note_defaut."\">" ;
   Echo "<script type=\"text/javascript\">var nd_old='".$div_defaut."';pref('".$div_defaut."','".$note_defaut."');</script>" ;
   Echo "</form></div>" ;
   // Message d'erreur sur des notes superieur au max
   If (IsSet ($fichier) And ($fichier != ""))
    {
     Include ("../../tmp/".$fichier) ;
     @UnLink ("../../tmp/".$fichier) ;
    }
   If (IsSet ($message_erreur) And (($message_erreur [0][0] > 0) Or (($message_erreur [0][0] == 0) And ($message_erreur [0][1] == 3))))
    {
     If ($message_erreur [0][1] == 1)
      {
       Echo "<script type=\"text/javascript\"> alert (\" \\!\\!\\!\\!\\!\\! ATTENTION \\!\\!\\!\\!\\!\\!\\n" ;
       If ($message_erreur [0][0] > 1) { Echo "Les eleves suivants ont une note qui depasse le maximum impose de ".$message_erreur [0][2]." points : \\n" ; }
       Else { Echo "L'eleve suivant a une note qui depasse le maximum impose de ".$message_erreur [0][1]." points : \\n" ; }
       For ($i = 1 ; $i <= $message_erreur [0][0] ; $i++)
        {
         Echo " - ".$message_erreur [$i][2]." ".$message_erreur [$i][3]." : Note saisie = ".$message_erreur [$i][0].", Note Reduite = ".$message_erreur [$i][1].".\\n" ;
        }
       Echo "\\n\\nApres fermeture de cette fenetre, veuillez verifier vos notes S.V.P.\\n          Merci.\") </script>" ;
      }
     ElseIf ($message_erreur [0][1] == 2)
      {
       Echo "<script type=\"text/javascript\"> alert (\" \\!\\!\\!\\!\\!\\! ATTENTION \\!\\!\\!\\!\\!\\!\\n" ;
       Echo "La colonne de 'notes' que vous venez de valider n'en comporte aucune !\\n" ;
       Echo "Elle n'est donc pas enregistree dans le carnet de notes.\\n" ;
       Echo "\\n\\nApres fermeture de cette fenetre, veuillez saisir au moins une note correcte S.V.P.\\n          Merci.\") </script>" ;
      }
     ElseIf ($message_erreur [0][1] == 3)
      {
       Echo "<script type=\"text/javascript\"> alert (\" \\!\\!\\!\\!\\!\\! ATTENTION \\!\\!\\!\\!\\!\\!\\n" ;
       Echo "La colonne de 'notes' que vous venez de valider n'en comporte PLUS aucune !\\n" ;
       Echo "Elle est enregistree dans le carnet de notes quand meme,\\n" ;
       Echo "mais elle n'est pas indispensable: Vous pouvez donc la supprimer !\\n" ;
       Echo "\\n\\nApres fermeture de cette fenetre, veuillez verifier cette colonne S.V.P.\\n          Merci.\") </script>" ;
      }
    }
   Echo "<script type=\"text/javascript\">top.travail.travail_menu.document.saisie.type.value=".$type.";</script></body></html>" ;
  }
?>